内建校验器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>  

 

 

本文转自 fkJava李刚 51CTO博客,原文链接:http://blog.51cto.com/javaligang/884514 ,如需转载请自行联系原作者

相关文章
|
1月前
|
JavaScript 安全
TypeScript 中的高级类型转换技术:映射类型、条件类型和类型推断
TypeScript 中的高级类型转换技术:映射类型、条件类型和类型推断
|
5月前
|
安全 编译器 C语言
代码规范:常量规则定义
使用枚举:来初始化类中的恒定常量 - 一般可用来在类中记录函数的返回值类型之类的内容。
33 0
|
5月前
使用 clangd 检查代码命名规范
使用 clangd 检查代码命名规范
|
7月前
|
安全 Java 编译器
Java注解(一) 注解的属性,格式,说明
Java注解(一) 注解的属性,格式,说明
70 0
|
9月前
|
Python
【Django学习】(九)自定义校验器_单字段_多字段校验_模型序列化器类
【Django学习】(九)自定义校验器_单字段_多字段校验_模型序列化器类
@TableLogic 注解的含义
@TableLogic 注解的含义
531 0
@TableLogic 注解的含义
|
存储 JSON 算法
DO447使用过滤器和插件转换器--使用过滤器处理变量
DO447使用过滤器和插件转换器--使用过滤器处理变量
182 0
DO447使用过滤器和插件转换器--使用过滤器处理变量
|
SQL IDE 开发工具
ABAP开发环境终于支持以驼峰命名法自动格式化ABAP变量名了
ABAP开发环境终于支持以驼峰命名法自动格式化ABAP变量名了
179 0
ABAP开发环境终于支持以驼峰命名法自动格式化ABAP变量名了