博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内建校验器2
阅读量:5967 次
发布时间:2019-06-19

本文共 2982 字,大约阅读时间需要 9 分钟。

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>  

 

转载地址:http://yymax.baihongyu.com/

你可能感兴趣的文章
[CodeForces - 950D]A Leapfrog in the Array(思维)
查看>>
两层指针的参数
查看>>
【CodeForces】700 D. Huffman Coding on Segment 哈夫曼树+莫队+分块
查看>>
apple apns http2 java调用
查看>>
再谈table组件:固定表头和表列
查看>>
用8张图理解Java
查看>>
egg 完整实例 增删改查MongoDB,websocket
查看>>
demo10 关于JS Tree Shaking
查看>>
4g伪基站如何实现的
查看>>
用Alamofire进行网络请求的一段代码解析(一)
查看>>
Mac 切换仓库地址后每次都要重新输入密码
查看>>
HTTP深入浅出
查看>>
Java实现的基于socket的一次通信
查看>>
Java系统中如何拆分同步和异步
查看>>
[NOI2014]魔法森林
查看>>
addClass 函数
查看>>
SQL Server (MSSQLSERVER) 服务因 2148081668 服务性错误而停止。
查看>>
nodeJs 接收请求参数和发送请求参数
查看>>
第三次作业——K米评测
查看>>
js 闭包
查看>>