内建校验器2

5.表达式校验器

表达式校验器的名字是expression,它是一个非字段校验器,不可在字段校验器的配置风格中使用。该表达式校验器要求OGNL表达式返回true,当返回true时,该校验通过;否则校验没有通过。

该校验器可以接受如下一个参数。

Ø  expression:该参数指定一个逻辑表达式,该逻辑表达式基于ValueStack进行求值,最后返回一个Boolean值;当返回true时,校验通过;否则校验失败。

该校验器的配置示例如下:

  
  
  
  
  1. <validators>  
  2.     <!-- 使用表达式校验器 -->  
  3.     <validator type="expression">  
  4.         <!-- 指定校验表达式 -->  
  5.         <param name="expression"> .... </param>  
  6.         <!-- 指定校验失败的提示信息 -->  
  7.          <message>Failed to meet Ognl Expression  .... </message>  
  8.     </validator>  
  9. </validators>  

6.字段表达式校验器

字段表达式校验器的名字是fieldexpression,它要求指定字段满足一个逻辑表达式。该校验器可以接受如下两个参数。

Ø  fieldName:该参数指定校验的Action属性名,如果采用字段校验器风格,则无须指定该参数。

Ø  expression:该参数指定一个逻辑表达式,该逻辑表达式基于ValueStack进行求值,最后返回一个Boolean值;当返回true时,校验通过;否则校验失败。

采用非字段校验器配置风格时,该校验器的配置示例如下:

  
  
  
  
  1. <validators>  
  2.     <!-- 使用非字段校验器风格来配置字段表达式校验器 -->  
  3.     <validator type="fieldexpression">  
  4.         <!-- 指定需要校验的字段名:pass -->  
  5.         <param name="fieldName">pass</param>  
  6.         <!-- 指定逻辑表达式 -->  
  7.         <param name=" expression "><![CDATA[(pass == rpass)]]</param>  
  8.         <!-- 指定校验失败的提示信息 -->  
  9.         <message>密码必须和确认密码相等</message>  
  10.     </validator>  
  11.     ..  
  12. <validators>  

采用字段校验器配置风格时,该校验器的配置示例如下:

  
  
  
  
  1. <validators>  
  2.     <!-- 使用字段校验器风格来配置字段表达式校验器,校验pass属性 -->  
  3.     <field name="pass">  
  4.         <field-validator type="fieldexpression">  
  5.             <!-- 指定逻辑表达式 -->  
  6.             <param name=" expression "><![CDATA[(pass == rpass)]]</param>  
  7.             <!-- 指定校验失败的提示信息 -->  
  8.             <message>密码必须和确认密码相等</message>  
  9.         </ field-validator>  
  10.         ...  
  11.     </field>  
  12.     ...  
  13. <validators>  

7.邮件地址校验器

邮件地址校验器的名称是email,它要求被检查字段的字符如果非空,则必须是合法的邮件地址。不过这个校验器其实就是基于正则表达式进行校验的,系统的邮件地址正则表达式为:

\\b(^[_A-Za-z0-9-](\\.[_A-Za-z0-9-])*@([A-Za-z0-9-])+((\\.com)|(\\.net)|(\\.org)|(\\.info)|(\\.edu)|(\\.mil)|(\\.gov)|(\\.biz)|(\\.ws)|(\\.us)|(\\.tv)|(\\.cc)|(\\.aero)|(\\.arpa)|(\\.coop)|(\\.int)|(\\.jobs)|(\\.museum)|(\\.name)|(\\.pro)|(\\.travel)|(\\.nato)|(\\..{2,3})|(\\..{2,3}\\..{2,3}))$)\\b

注意:

随着技术的不断发展,有可能上面的正则表达式不能完全覆盖实际的电子邮件地址。此时,建议开发者使用正则表达式校验器来完成邮件校验。

该校验器可以接受如下一个参数。

Ø  fieldName:该参数指定校验的Action属性名,如果采用字段校验器风格,则无须指定该参数

采用非字段校验器配置风格时,该校验器的配置示例如下:

   
   
   
   
  1. <validators>  
  2.     <!-- 使用非字段校验器风格来配置邮件校验器 -->  
  3.     <validator type="email">  
  4.         <!-- 指定需要校验的字段名:email -->  
  5.         <param name="fieldName">email</param>  
  6.         <!-- 指定校验失败的提示信息 -->  
  7.         <message>你的电子邮件地址必须是一个有效的电邮地址</message>  
  8.     </validator>  
  9.     ..  
  10. <validators>  

采用字段校验器配置风格时,该校验器的配置示例如下:

  
  
  
  
  1. <validators>  
  2.     <!-- 使用字段校验器风格来配置邮件校验器,校验email属性 -->  
  3.     <field name="email">  
  4.         <field-validator type="email">  
  5.             <!-- 指定校验失败的提示信息 -->  
  6.             <message>你的电子邮件地址必须是一个有效的电邮地址</message>  
  7.         </ field-validator>  
  8.         ...  
  9.     </field>  
  10.     ...  
  11. <validators>  

8.网址校验器

网址校验器的名称是url,它要求被检查字段的字符如果非空,则必须是合法的URL地址。不过这个校验器其实就是基于正则表达式进行校验的,因此,有可能随着技术的发展,这个校验器不能完全覆盖所有的网址。此时,建议开发者使用正则表达式校验器进行网址校验。

该校验器可以接受如下一个参数。

Ø  fieldName:该参数指定校验的Action属性名,如果采用字段校验器风格,则无须指定该参数

采用非字段校验器配置风格时,该校验器的配置示例如下:

    
    
    
    
  1. <validators>  
  2.     <!-- 使用非字段校验器风格来配置网址校验器 -->  
  3.     <validator type="url">  
  4.         <!-- 指定需要校验的字段名: url -->  
  5.         <param name="fieldName">url</param>  
  6.         <!-- 指定校验失败的提示信息 -->  
  7.         <message>你的主页地址必须是一个有效的网址</message>  
  8.     </validator>  
  9.     ..  
  10. <validators>  

采用字段校验器配置风格时,该校验器的配置示例如下:

  
  
  
  
  1. <validators>  
  2.     <!-- 使用字段校验器风格来配置网址校验器,校验url属性 -->  
  3.     <field name="url">  
  4.         <field-validator type="url">  
  5.             <!-- 指定校验失败的提示信息 -->  
  6.             <message>你的主页地址必须是一个有效的网址</message>  
  7.         </ field-validator>  
  8.         ...  
  9.     </field>  
  10.     ...  
  11. <validators>  

 

你可能感兴趣的:(开发,javaee,struts2,李刚)