Struts2 输入校验器大全

2

Struts2 输入校验器大全  


009-11-26 18:39:15 |  分类:  Struts |举报 |字号  订阅

技术要点

介绍 Struts2 自带的输入校验器。

演示代码

在 xwork-2.0.4.jar 包中,请读者在 \com\opensymphony\xwork2\validator\validators 路径下找一个名字为“ default.xml ”的 xml 文件。在该文件中有所有 Struts2 自带的输入校验器定义。具体代码如下:

Java代码 Struts2 输入校验器大全 - ruijunsuo - Big-Time的博客

  1.   
  2. …………   
  3.   
  4. class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/>   
  5. class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/>   
  6. class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/>   
  7. class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/>   
  8. class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/>   
  9. class="com.opensymphony.xwork2.validator.validators.ExpressionValidator"/>   
  10. class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/>   
  11. class="com.opensymphony.xwork2.validator.validators.EmailValidator"/>   
  12. class="com.opensymphony.xwork2.validator.validators.URLValidator"/>   
  13. class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/>   
  14. class="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"/>   
  15. class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/>   
  16. class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/>   
  17.    

以上代码是所有 Struts2 输入校验器的定义,下面将这些输入校验器(一共有 13 个)的字段和非字段格式的校验形式写在如下,本例中没有程序代码示例,所有输入校验器的应用代码都是笔者自己定义的。

Java代码 Struts2 输入校验器大全 - ruijunsuo - Big-Time的博客

  1.   
  2.      
  3.      
  4.       field                    
  5.       请输入数据   
  6.      
  7.      
  8.      
  9.                     
  10.           请输入数据   
  11.          
  12.      
  13.   
  14.      
  15.      
  16.      
  17.       field   
  18.       true                   
  19.       请输入数据   
  20.      
  21.      
  22.      
  23.          
  24.           true             
  25.           请输入数据   
  26.          
  27.      
  28.   
  29.      
  30.      
  31.      
  32.       field                    
  33.       1   
  34.       80   
  35.       数字必须在${min}-${max}岁之间   
  36.      
  37.      
  38.      
  39.          
  40.           1   
  41.           80   
  42.           数字必须在${min}-${max}岁之间   
  43.          
  44.      
  45.   
  46.      
  47.      
  48.      
  49.       field   
  50.       0.1   
  51.       10.1              
  52.       输入浮点无效   
  53.      
  54.      
  55.      
  56.          
  57.           0.1   
  58.           10.1              
  59.           输入浮点无效   
  60.          
  61.      
  62.     
  63.      
  64.      
  65.      
  66.       field   
  67.       2009-01-01   
  68.       2019-01-01   
  69.       日期无效   
  70.      
  71.      
  72.      
  73.          
  74.          2009-01-01   
  75.          2019-01-01   
  76.          日期无效   
  77.          
  78.      
  79.   
  80.      
  81.      
  82.      
  83.       password==repassword   
  84.           两者输入不一致   
  85.      
  86.     
  87.      
  88.      
  89.      
  90.       password==repassword   
  91.       两者输入不一致   
  92.      
  93.      
  94.      
  95.          
  96.              
  97.           两者输入不一致   
  98.          
  99.      
  100.   
  101.      
  102.      
  103.      
  104.       field                    
  105.       非法邮件地址   
  106.      
  107.      
  108.      
  109.          
  110.           非法邮件地址   
  111.          
  112.      
  113.     
  114.      
  115.      
  116.      
  117.       field                
  118.       无效网址   
  119.      
  120.      
  121.      
  122.                       
  123.           无效网址   
  124.          
  125.      
  126.     
  127.      
  128.      
  129.      
  130.       field   
  131.       fieldContext   
  132.       true                
  133.       输入校验   
  134.      
  135.      
  136.      
  137.                      
  138.           fieldContext   
  139.           true                
  140.           输入校验   
  141.          
  142.      
  143.     
  144.      
  145.      
  146.      
  147.       field   
  148.       类型转换错误   
  149.      
  150.      
  151.      
  152.          
  153.           类型转换错误   
  154.          
  155.      
  156.     
  157.      
  158.      
  159.      
  160.       field   
  161.       1   
  162.       10   
  163.       true                   
  164.       字符串长度必须为10位   
  165.      
  166.      
  167.      
  168.          
  169.           1   
  170.           10   
  171.           true                
  172.           字符串长度必须为10位   
  173.          
  174.      
  175.     
  176.      
  177.      
  178.      
  179.       field                    
  180.          
  181.       手机号码必须为数字并且是11位   
  182.      
  183.      
  184.      
  185.          
  186.              
  187.           手机号码必须为数字并且是11位   
  188.          
  189.     

代码解释

( 1 )必填校验器 required 是用来判断输入的字段是否为空。如果未输入任何数据则会显示错误信息。 fieldName 属性是指定校验的字段名。这个属性是所有 Struts2 自带的输入校验器都具有的属性。因此介绍其他输入校验器时,笔者略过不谈。但是读者自己要知道该属性是输入校验器共有的。该校验器其他标签都和前几章节中有过介绍,笔者也略过不谈。

( 2 )必填字符串校验器 requiredstring 用来判断输入字段是否是 1 个非空字符串 。如果不是也显示错误信息。其中的 trim 属性是在校验之前对字符串进行处理。默认是“ true ”。

( 3 )整数校验器 int 判断输入的字段数据是在一个整数范围内。 min 属性是最小值, max 是最大值。 标签内可用“ ${ 属性名 } ”格式类表示他们具体的值。

( 4 )浮点校验器 double 是 t 判断输入的字段数据是在 1 个浮点数范围内。 minInclusive 表示这个范围的最小值。 max Inclusive 表示这个范围的最大值。还有 minExclusive 和 maxExclusive 两个属性,前者表明在浮点范围之外的最小值,后者是在浮点范围之外的最大值。

注意:以上四个属性如果没有声明,则输入校验不会去检查。

( 5 )日期校验器 date 判断输入的字段的日期值是否在 1 个日期范围内。 min 是该范围的最小值, max 是最大值。他们两个属性也和浮点校验器的四个属性相同,如果没有声明则输入校验不检查。

( 6 )表达式校验器 expression 只有非字段校验格式。不能在字段校验中声明。它的属性也是 expression 。如代码所示开发者可以使用 OGNL 表达式来定义校验规则。

( 7 )字段表达式校验器 fieldexpression 判断字段是否满足一个表达式。如代码所示,当用来判断输入的密码和确认密码值是否一致就可以使用该校验器。它的属性 expression 和表达式校验器相同。不过它可以用在字段校验中。

( 8 )邮件校验器 email 来判断输入的字段是 1 个 email 时候是否符合 email 的格式。

( 9 )网址校验器 ur l 来判断输入的字段是 1 个网址时候是否符合网址的格式。

( 10 ) visitor 校验器就是判断集合类型的字段。前面章节有所介绍。这里在重申一下 context 属性是可以应用的集合类型中元素对象的别名。 appendPrefix 属性是指定在错误信息中前面是否加上特定前缀。该前缀内容可在 标签中定义。另外这两个属性也是没有声明时候,校验器不会去执行检查。

( 11 )类型转换校验器 conversion 用来判断输入字段是否进行类型转换。它有 1 个 repopulateField 属性,如果为“ true ”表明如果发生类型转换错误,返回到 struts.xml 中指定的 Action 的 input 视图界面时候还是否把原来错误的输入内容显示出来。“ false ”则相反。从这也可以看出笔者一直坚持的观点类型转换也属于输入校验的一种是有理论依据的。

( 12 )字符串长度校验器 stringlength 用于判断输入的字符串长度是否是指定的长度范围。其中 minLength 是最小字符串长度, maxLength 是最大字符串长度。 trim 属性和上述必填字符串校验器 requiredstring 中 trim 属性拥有相同功能。这三者也是属于不声明则不执行检查的可选属性。

( 13 )正则表达式校验器 regex 检查字段输入值是否和 1 个正则表达式匹配。 expression 属性中内容就是该正则表达式。还有个 caseSensitive 属性,为“ true ”则表明匹配时候对字母大小写敏感。反之则不敏感。如代码所示笔者用了 1 个判断输入的值是否是 11 位,全部由数字组成的正则表达式。对于输入手机号码数据的字段,该校验规则是最适用的。

你可能感兴趣的:(Struts2 输入校验器大全)