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

来源:互联网 发布:react js 项目 编辑:程序博客网 时间:2024/06/05 18:32

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;@Overridepublic 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方法中,这样不需返回值也可以达到相同的作用

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

 

 

 

 

0 0