Struts的验证框架
一、字段验证器
1.简单的用户输入验证,在接收数据的Action同一个包下,创建一个***-validation.xml
文件,然后对验证规则进行配置示例:
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd"> <validators> <field name="user.account"> <field-validator type="requiredstring"> <message>请输入账号</message> <!--返回的错误提示的消息 --> </field-validator> </field> </validators> 示例讲解: <validators> <validator type="int"> <param name="fieldName">user.age</param> <param name="min">18</param> <message>年龄必须在18岁以上,您输入的是${user.age}</message> </validator> <validators>
①<validators>元素仍然作为整个验证文件的根元素
②<validators>的子元素就是字段验证器<validator>元素的type属性就是这个字段验证器
使用的验证器
③<validator>元素作为字段验证器使用时,一定要出现一个name属性为fieldName的<param>
子元素,用以指明验证哪个字段
④<validator>元素的<messahe>子元素用来设置验证错误是返回的信息。在<message>元素中
写出的文本将直接作为错误信息返回,如果<message>元素存在key属性,它将引用国际化信息
在返回错误信息的界面使用<s:fielderror/>来输出提示信息
二、动作验证器
示例如下:
<validator type="expression"> <param name="expression"><![CDATA[user.age >= user.account]]></param> <message>年龄必须在${user.account}岁以上,您输入的是${user.age}</message> </validator>
①<validators>元素仍然作为整个验证文件的根元素
②<validators>元素的<validator>子元素就是动作验证器。其中type属性为expression,
引用了内置的表达式验证器,这个验证器需要一个name属性为expression的<param>子元素为其
指定表达式
③<validator>元素的<messahe>子元素用来设置验证错误是返回的信息。在<message>元素中
写出的文本将直接作为错误信息返回,如果<message>元素存在key属性,它将引用国际化信息
在返回错误信息的界面使用<s:actionerror/>来输出提示信息
三、内建验证器
①类型转换错误验证器(conversion)
conversion验证器用来验证转换类型是否出错,如果一个类型为int的
参数接收到“19a”这个字串,报错
②整数验证器(int)(短整数验证器(short)和长整数验证器(long)用法相似)
int验证器用来验证一个整数参数是否在指定的范围内。
int验证器可以有两个参数
min用来指定可接收范围的最小值
max用来指定可接收范围的最大值
③日期验证器(date)
date验证器用来验证一个日期型参数是否在指定的范围内。
date验证器可以有两个参数
min用来指定可接收范围的最小值
max用来指定可接收范围的最大值
④双精度浮点验证器(double)
double验证器用来验证一个双精度浮点型参数是否在指定的范围内。
double验证器可以有4个参数:
minInclusive用来指定课接收范围的最小值,包含给定值
masInclusive用来指定课接收范围的最大值,包含给定值
minExclusive用来指定课接收范围的最小值,不包含给定值
minExclusive用来指定课接收范围的最大值,不包含给定值
⑤邮箱验证器(E-mail)
e-mail验证器用来验证一个参数是否为邮箱地址
⑥URL验证器
URL验证器用来验证一个参数是否为合法的URL
⑦必填验证器(required)
required验证器用来验证一个参数是否不为null
⑧必填字符串验证器(requiredstring)
requiredstring验证器用来验证一个字符串参数是否为空,且长度大于0
requiredstring验证器只有一个参数:
trim:是否去掉字符串两边的空白,默认为true
⑨字符串长度验证器(stringlength)
stringlength验证器有3个参数
maxLength:字符串长度的最大值
minLength:字符串长度的最小值
trim:是否去掉字符串两边的空白,默认为true
⑩正则表达式验证器(regex)
regex验证器用来验证一个字符串是否符合一个正则表达式的要求
regex验证器有3个参数:
expression:必填参数,正则表达式。
caseSensitive:是否检查大小写。
trim:是否去掉字符串两边的空白,默认为true