一、配置错误信息
在validate方法中
使用addFieldError(fieldName, errorMessage)方法存入字段的错误信息.
使用addActionError(anErrorMessage)方法存入action的错误信息
使用addActionMessage(aMessage)方法存入action提示信息
在页面
使用<s:fielderror fieldName="xxx" />取出字段的错误信息
使用<s:actionerror/>取出action的错误信息
使用<s:actionmessage/>取出action提示信息
当然如果你的页面使用了struts2提供的表单标签.表单标签会自动显示字段的错误信息
<s:fielderror /> <form action="<c:url value='/Demo1Action.action'/>" > 用户名:<input type="text" name="username"/><br/> 密 码:<input type="password" name="password"/><br/> <input type="submit" value="提交"/> </form> |
public class Demo1Action extends ActionSupport { private String username; private String password; @Override public void validate() { if(username == null || username.trim().length() == 0) { this.addFieldError("username", "用户名不能为空"); } if(password == null || password.trim().length() == 0) { this.addFieldError("password", "密码不能为空"); } } public String execute() { System.out.println(username + ", " + password); return NONE; } } |
二、创建校验文件
1. 校验文件的命名必须为:ActionName-validation.xml。例如LoginAction的校验文件命名为:LoginAction-validation.xml。
2. 校验文件的路径:必须与Action在同包下。
3. 校验文件的DTD:在xwork-core-x.x.x.jar中找到xwork-validator-x.x.x.dtd,打开它,内部会有一段DTD,我们把它copy过来,放到我们的校验文件中。
xwork-validator-1.0.3.dtd
三、校验规则介绍
- required:当属性为null时校验失败;
- requiredstring:当字符串属性长度为0时校验失败:
- 参数trim:默认值为true,表示去除前后空白后再校验长度。
- stringlength:当字符串长度不在指定范围内时校验失败:
- minLength:指定字符串的最小长度;
- maxLength:指定字符串的最大长度。
- regex:属性不能匹配正则表达式时校验失败:
- expression:指定正则表达式;
- caseSensitive:默认值为true,表示不忽略大小写。
- int:当int属性不在指定范围内校验失败:
- min:最小值;
- max:最大值。
- double:当double属性不在指定范围内校验失败:
- min:最小值;
- max:最大值。
- fieldexpression:属性必须是OGNL表达式:
- expression:用来校验的ONGL表达式,例如pass == repass,其中pass和repass是两个属性名称,当这两个属性的值相等时校验通过,否则失败。
- email:属性必须是合法的邮件地址;
- url:属性必须是合法的网址;
- date:属性必须是合法的日期格式。