您的位置:首页 > 编程语言 > Java开发

Struts2内置校验器

2014-11-12 20:34 239 查看
struts2提供了大量的内置验证器,分别介绍如下

1.必填验证器

RequiredFieldvalidator验证器检查指定的字段是否为null。该验证器可以接受一个参数:fieldName,指定要验证的字段名,如果使用<field>元素来声明该字段验证器,则不需要这个参数。

采用非字段校验器的配置如下:

<!-- 使用type属性指定使用required验证器 -->
<validator type="required">
<!-- 通过fieldName参数指定需要验证的字段 -->
<param name="fieldName">user.username</param>
<message>请输入用户名!</message>
</validator>

 

采用字段验证器配置如下:

<!-- 采用字段验证器风格时 -->
<!-- 通过name来指定要验证的字段名 -->
<field name="user.username">
<!-- 使用type属性指定使用required验证器 -->
<field-validator type="required">
<message>请输入用户名!</message>
</field-validator>
</field>


2必填字符串验证器:

<!-- 必填字符串验证器 -->
<!-- 其中trim是指定在执行验证的时候,调用String的trim()方法删除首尾的空格 -->
<validator type="requiredstring">
<param name="fieldName">user.username</param>
<param name="trim">true</param>
<message>请输入用户名!</message>
</validator>

<!-- 采用字段校验器配置风格时 -->
<field name="user.username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>请输入用户名!</message>
</field-validator>
</field>

 

3.字符串长度验证器:

StringLengthFieldValidator验证器检查一个字符串字段值是否子啊一定的长度范围内。该验证器有四个参数:

fieldname:要验证的字段名

maxLength:指定字符值的最大长度

minLength:指定字段值的最小长度

trim指定是否执行String 的trim()方法去掉首尾空格

<!-- 字符串长度验证器 -->
<!-- 采用非字段校验器配置风格时 -->
<validator type="stringlength">
<param name="fieldName">user.username</param>
<param name="minLength">10</param>
<param name="maxLength">18</param>
<param name="trim">true</param>
<message>你输入的长度必须在${minLength}和${maxLength}之间</message>
</validator>
<!-- 采用字段校验器 -->
<field name="user.username">
<field-validator type="stringlength">
<param name="minLength">10</param>
<param name="maxLength">18</param>
<param name="trim">true</param>
<message>你输入的用户名长度必须在${minLength}和${maxLength}之间</message>
</field-validator>
</field>

 

4.整数验证器

IntRangeFieldValidator验证器检查指定的整数是否在一定的范围内。

有三个参数:

fieldName:要验证字段名

min:整数最小值

max:指定整数的最大值

<!-- 整数验证器 -->
<!-- 采用非字段验证器 -->
<validator type="int">
<param name="fieldName">user.age</param>
<param name="min">1</param>
<param name="max">10</param>
<message>你输入的年龄在${min}到${max}之间</message>
</validator>
<!-- 采用字段校验器 -->
<field name="user.age">
<field-validator type="int">
<param name="min">1</param>
<param name="max">10</param>
<message>你输入的长度必须在${min}和${max}之间</message>
</field-validator>
</field>


5.双精度浮点数验证器
DoubleRangeFieldValidator验证器检查浮点数是否在指定的范围之内

fieldName:指定要验证的字段名

minInclusive:指定浮点数的最小值

maxinclusive:指定浮点数的最大值

<!-- 双精度浮点数验证器 -->
<validator type="double">
<param name="fieldName">price</param>
<param name="minInclusive">10.1</param>
<param name="maxInclusive">111.0</param>
<message>商品的价格必须在${minInclusive}到${maxInclusive}之间</message>
</validator>
<!-- 字段验证器 -->
<field name="price">
<field-validator type="double">
<param name="minExclusive">10.123</param>
<param name="maxExclusive">99.123</param>
<message>你输入的长度必须在${minExclusive}到${maxExclusive}之间</message>
</field-validator>
</field>


6.日期验证器

DateRangeFieldValidator验证日期是否在指定范围之内

<!-- 日期验证器 -->
<!-- 使用非字段验证器的配置 -->
<validator type="date">
<param name="fieldName">user.birth</param>
<param name="min">01/01/1990</param>
<param name="max">01/01/2020</param>
<message>出生日期必须在1990年1月1日到什么之间</message>
</validator>
<!-- 采用字段验证器 -->
<field name="user.birth">
<field-validator type="date">
<param name="min">01/01/1990</param>
<param name="max">01/01/2050</param>
<message>你输入的出生日期必须在1990年1月1日到2050年1月1日之间</message>
</field-validator>
</field>


7.表达式验证器

<!-- 表达式验证器 -->
<!--Expression Validator是一个普通验证码,它基于OGNL表示进行验证。该验证器可以接受一个参数:expression
这个参数指定要计算的OGNL表达式,该表达式是基于栈进行求值,表达式的结果必须是Boolean,不支持<field>标签 -->
<validator type="expression">
<param name="expression">user.password==verifyPassword</param>
<message>输入密码不一致</message>
</validator>


8.字段表示式验证器

<validator type="fieldexpression">
<param name="fieldName">verifyPassword</param>
<param name="expression">verifyPassword==user.password</param>
<message>再次输入的密码不一致!</message>
</validator>

<!-- 使用字段校验器风格来配置 -->
<field name="verifyPassword">
<field-validator type="fieldexpression">
<param name="expression">verifyPassword==user.userpass</param>
<message>输入密码不一致 </message>
</field-validator>
</field>


9.正则表达式验证器

<!-- 正则表达式验证器 -->
<!-- 采用非字段验证器 -->
<validator type="regex">
<param name="fieldName">user.zipcode</param>
<param name="expression"><![CDATA[[0-9\d{5}(?!\d)]]]></param>
<message>邮政编码无效</messa
4000
ge>
</validator>

<!-- 使用字段校验器配置风格来配置正则表达式 -->
<field name="user.zipcode">
<field-validator type="regex">
<param name="expression"><![CDATA[[0-9\d{5}(?!\d)]]]></param>
<message>邮政编码无效</message>
</field-validator>
</field>

 

10.邮件地址验证器

<!-- 邮件地址验证器 -->
<!-- 使用非字段校验器配置风格来配置邮件校验器 -->
<validator type="email">
<param name="fieldName">user.email</param>
<message>邮箱地址无效</message>
</validator>
<field name="user.email">
<field-validator type="email">
<message>邮箱地址无效</message>
</field-validator>
</field>

 

11.网址验证器

<!-- 网址验证器 -->
<validator type="url">
<param name="fieldName">homePage</param>
<message>输入网址不合法</message>
</validator>
<field name="homePage">
<field-validator type="url">
<message>输入网址不合法</message>
</field-validator>
</field>

 

12.visitor验证器

我们编写的验证器,基本上针对特定的user对象的,但是对于model层实体类,在很多地方都要实例化他们的对象,那样的话我们就会在很多地方编写验证。

VistorFieldValidator验证器介绍:

作用,提高代码重用性

VistorFieldValidator可以处理简单的对象属性,也可以处理对象集合或者对象数组

VistorFieldValidator验证器接受三个参数:

fieldname:指定要验证的字段名

context:指定验证发生的上下文,是可选的

appendPrefix:Boolean型,指定要添加到字段上的前缀。参数可选,默认值为true

 

13.转换验证器

<!-- 转换验证器 -->
<validator type="conversion">
<param name="fieldName">intField</param>
<param name="repopulateField">true</param>
<message>不能转换成Integer类型!</message>
</validator>

<field name="intField">
<field-validator type="conversion">
<param name="repopulateField">true</param>
<message>不能转换成Integer类型</message>
</field-validator>
</field>


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息