您的位置:首页 > 编程语言 > Java开发

ssh学习:struts2的返回结果集input

2016-02-16 11:44 441 查看
struts2返回结果集input值的作用于用法
在struts.xml配置文件当中action下的result标签name值为input时,即:<result name="input"></result>能起到校验数据并自动跳转到指定的链接下。

比如咋输入的数据要求是整形实际输入却是字符串;要求不能提交为空的字符,提交的实际数据却是空的等等。当检验数据不符合要求时候,可以使用<result name="input"></result>跳转到指定的页面链接或者action等。

诶呀,讲的不清楚,用实际的小demo来看看也许能更易懂一点。

定义一个数据封装的对象Java bean类:User

 

public class User  implements Serializable{
private String name;
private String psw;
private int age;
//下面还要实现三属性的get/set方法
}

 struts.xml文件配置如下:

<action name="sectAction" class="com.usc.geowind.lilin.actions.SecAction"
method="execute">
<result name="success">
/success.jsp
</result>
<!-- 数据校验错误时候执行该返回集 -->
<result name="input">
/inputError.jsp
</result>

</action>

此时我们在action类中,只实现数据封装,不做任何的数据校验判定。

public class SecAction extends ActionSupport {
private User user;

@Override
public String execute() throws Exception {
System.out.println(user);
return SUCCESS;
}

public User getUser() {
return user;
}

public void setUser(User user) {
this.user = user;
}

}

 当从前台提交的表单中的age值是字符串时候,action就会自动的跳转到inputError.jsp页面下,当数据提交是符合要求的时候就会跳转到success.jsp页面下

怎么使用<result name="input"></result>进行数据校验呢?

以上面的为例,校验用户名是否为空,数据为空是不符合要求则继续跳转到Login.jsp页面

Login.jsp部分代码

<s:form namespace="" action="sectAction" method="post">
<s:textfield label="useName" name="user.name"/>
<s:fielderror name="userNameError"></s:fielderror>
<s:textfield label="age" name="user.age"/>
<s:password label="psw" name="user.psw"/>
<s:submit label="submit"></s:submit>
<s:reset label="reset"></s:reset>
</s:form>

 action类的代码:

public String execute() throws Exception {
if (user.getName() == null || "".equals(user.getName())) {
//向jsp的struts标签提示信息
this.addFieldError("userNameError", "用户名输入有误!");
//必须写return语句,不然校验没起到任何作用
return INPUT;
}
System.out.println(user);
return SUCCESS;
}

 校验的代码写在execute方法中,必须返回input字符串,否则不起什么作用。除了这种写法外,也可以把校验的代码写在validate方法中,这样不需返回值也可以达到相同的作用

@Override
public void validate() {
if (user.getName() == null || "".equals(user.getName())) {
// 向jsp的struts标签提示信息
this.addFieldError("userNameError", "用户名输入有误!");
}
}

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: