Struts2提供的校验器及其规则:
struts2提供了大量的内置校验器:你可以在xwork-core-2.1.6.jar的com.opensymphony.xwork2.validator.validators下找到如下配置文件:default.xml。里面列出了所有的内置校验器。
required:必填校验器,要求field的值不能为null。
requiredstring:必填字符串校验器,要求field的值不能为null,并且长度大于0
属性——trim:指定在校验之前是否去除字段串前后的空格。
stringlength:字段长度校验器,要求fidle的值必须在指定的范围内,否则校验失败。
属性——minLength:指定最小长度。 maxLength:指定量大长度。 trim:指定在校验之前是否去除字段串前后的空格。
regex:正则表达式校验器,检查衩校验的field是否匹配一个正则表达式。
属性——expression:指定正则表达式(2.3.15版用regexExpression)。 caseSensitive:指定进行正则表达式匹配时是否区分大小写。
int:整数校验器,要求field的整数值 必须在指定范围内。
属性——min:指定最小值。 max指定最大值。
double:双精度浮点数校验器,要求field的双精度浮点数值必须在指定范围内。
属性——min:指定最小值。 max指定最大值。
fieldexpression:字段OGNL表达式校验器。要求field满足一个ognl表达式。
属性——expression:指定ognl表达式(表达式要写在 <![CDATA[]]> 内)。
email:邮件地址校验器。要求如果field的值非空,则必需是合法的邮件地址。
url:网址校验器。要求如果field的值非空,则必需是合法的 url 地址。
date:日期校验器,要求field的日期值必须在指定范围内
属性——min:指定最小值。 max指定最大值。
conversion:转换校验器,指定在类型转换失败时,提示错误信息。
visitor:用于校验action中的复合属性。它拽定一个校验文件用于校验复合属性中的属性。
expression:OGNL表达式校验器。要求field满足一个ognl表达式。该逻辑表达式基于ValueStack进行求值。该校验器不可用在字段校验器风格的配置中!
属性——expression:指定ognl表达式(表达式要写在 <![CDATA[]]> 内)。
JSP:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib uri="/struts-tags" prefix="s" %>Insert title here 注册页面
Action类:
1 public class RegistAction extends ActionSupport { 2 private String username; 3 private String password; 4 private String repassword; 5 private int age; 6 private String email; 7 private String phone; 8 private Date birthday; 9 10 11 public String getUsername() {12 return username;13 }14 15 16 public void setUsername(String username) {17 this.username = username;18 }19 20 21 public String getPassword() {22 return password;23 }24 25 26 public void setPassword(String password) {27 this.password = password;28 }29 30 31 public String getRepassword() {32 return repassword;33 }34 35 36 public void setRepassword(String repassword) {37 this.repassword = repassword;38 }39 40 41 public int getAge() {42 return age;43 }44 45 46 public void setAge(int age) {47 this.age = age;48 }49 50 51 public String getEmail() {52 return email;53 }54 55 56 public void setEmail(String email) {57 this.email = email;58 }59 60 61 public String getPhone() {62 return phone;63 }64 65 66 public void setPhone(String phone) {67 this.phone = phone;68 }69 70 71 public Date getBirthday() {72 return birthday;73 }74 75 76 public void setBirthday(Date birthday) {77 this.birthday = birthday;78 }79 80 81 @Override82 public String execute() throws Exception {83 84 return NONE;85 }86 }
xml校验器:
用户名不能为空 密码不能为空 6 12 密码需要在6-12之间 两次密码不一致 18 40 年龄必须在18-40之间 邮箱格式错误 电话不合法 1974-01-01 1996-01-01 生日不合法