Struts2内置校验器

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>


 

<!-- 采用字段验证器风格时 -->
   <!-- 通过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>邮政编码无效</message>
   </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>


 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值