读书人

Strus 二 输入校验

发布时间: 2012-09-08 10:48:07 作者: rapoo

Strus 2 输入校验
在struts2中,我们可以实现对action的所有方法进行校验或者对action的指定方法进行校验。

对于输入校验struts2提供了两种实现方法:
1. 采用手工编写代码实现。
2. 基于XML配置方式实现。

手工编写代码实现对action中所有方法输入校验通过重写validate() 方法实现, validate()方法会校验action中所有与execute方法签名相同的方法。当某个数据校验失败时,我们应该调用addFieldError()方法往系统的fieldErrors添加校验失败信息(为了使用addFieldError()方法,action可以继承ActionSupport ),如果系统的fieldErrors包含失败信息,struts2会将请求转发到名为input的result。在input视图中可以通过<s:fielderror/>显示失败信息。
validate()使用例子:
public void validate() {
if(this.mobile==null || "".equals(this.mobile.trim())){ this.addFieldError("username", "手机号不能为空");
}else{ if(!Pattern.compile("^1[358]\\d{9}").matcher(this.mobile.trim()).matches()){
this.addFieldError(“mobile", "手机号的格式不正确"); }
}
}

验证失败后,请求转发至input视图:
<result name="input">/WEB-INF/page/addUser.jsp</result>

在addUser.jsp页面中使用<s:fielderror/>显示失败信息。

手工编写代码实现对action指定方法输入校验
通过validateXxx()方法实现, validateXxx()只会校验action中方法名为Xxx的方法。其中Xxx的第一个字母要大写。当某个数据校验失败时,我们应该调用addFieldError()方法往系统的fieldErrors添加校验失败信息(为了使用addFieldError()方法,action可以继承ActionSupport ),如果系统的fieldErrors包含失败信息,struts2会将请求转发到名为input的result。在input视图中可以通过<s:fielderror/>显示失败信息。

validateXxx()方法使用例子:
public String add() throws Exception{ return "success";}
public void validateAdd(){
if(username==null && "".equals(username.trim())) this.addFieldError("username", "用户名不能为空");
}

验证失败后,请求转发至input视图:
<result name="input">/WEB-INF/page/addUser.jsp</result>

在addUser.jsp页面中使用<s:fielderror/>显示失败信息。

读书人网 >软件架构设计

热点推荐