struts2 验证
package com.derby.dms.neil;import com.opensymphony.xwork2.ActionSupport;
import java.util.regex.Pattern;
/*
struts2 的 ActionSupport类提供了validate方法,此方法可以对使用的Action进行校检。例如:
public class RegistAction extends ActionSupport {
private String name;
//重写ActionSupport的此方法进行校检
@Override
public void validate(){
if(name != null && Pattern.matches("\\w{4,25}",name.trim())){
addFieldError("user","您输入用户名必须是字母和数字,且长度必须是4到25之间");
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
在上面的validate 方法中,一旦校检失败,就会把失败的提示信息通过addfieldError方法添加到系统的fieldError中。
为了在input视图对应的JSP页面输出错误提示,应该在该页面中添加如下代码:
输出失败提示和校检失败提示<s:filederror/>
validate方法会处理你Action中的所有逻辑方法,如果我只需要对单个逻辑方法进行验证,那么就需要重写validateXxx()
方法。例如下面我有一个处理逻辑方法Regist()方法,我只需要对这个方法进行校检。如下
*/
public class RegistAction extends ActionSupport {
public String name;
public void validateRegist() {
//验证内容
}
public String regist() {
return SUCCESS;
}
public void setName(String name) {
this.name = name;
}
}
/*
上面是手动验证方法,struts2还提供一种配置文件的验证方法,些配置文件例如下面
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="name">
<field-validator type="requiredstring">
<message>姓名必须输入.</message>
</field-validator>
</field>
</validators>
此配置文件必须遵循如下规则:<Action 名字>-validation.xml
签名的Action名字就是你的Aaction名字可以更改,后面-validation.xml是固定不变不能更改的。
并且该文件必须和Action保存在相同的路径下。
在JSP页面中要指定 validate="true"
<s:form action="" validate="true">
*/
页:
[1]