Struts2数据校验(2)--使用XWork检验框架实现校验
来源:互联网 发布:亚马逊数据 测评 编辑:程序博客网 时间:2024/05/22 07:48
2.使用XWork检验框架实现校验
通过XWork的validator框架也可以进行Struts2的数据校验,使用XWork的validator框架实现数据校验,只需编写一个验证文件便可。
1.验证文件
验证文件由两种:一种是actionName-validation.xml,actionName是需要校验的Action的类名,且需要放到和该类相同的路径下,这种校验和validate()方法的作用相同;另一种是
actionName-methodName-validation.xml,actionName是需要校验的Action的类名,methodName是Action中某个业务处理方法的方法名,且需要放到和该类相同的路径下,这种校验和validateX()方法的作用相同。
2.校验配置
(1)字段校验方式(Field-validator)
采用字段验证方式时,field是作为基本的子元素。
l validators:校验文件的根元素;
l field:是validators元素下的元素,name属性指定了被校验的字段;
l field-validator:field元素下的元素,type属性用来指定校验器的名称,每个field-validator元素都可以指定一个校验规则且每个field-validator属性都必须包含一个message元素;
l message:field-validator元素下的必备元素,该元素指出校验出错后的提示信息;
l param:field-validator元素下的元素,该元素指定了校验过程中使用到的参数。
示例如下:
<?xmlversion="1.0"encoding="GBK"?>
<!DOCTYPEvalidators PUBLIC"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<fieldname="name">
<field-validatortype="requiredstring">
<message>the name is requred!</message>
</field-validator>
</field>
<fieldname="age">
<field-validatortype="int">
<paramname="min">1</param>
<paramname="max">150</param>
<message>the age must be from 1 to 150!</message>
</field-validator>
</field>
</validators>
(2)非字段校验方式(Non-Field validator)
采用非字段校验方式时,validator元素是它的基本单位,每个validator元素指定一个校验规则。
l validators:校验文件的根元素;
l validator:validators元素下的元素,type属性指定了校验器的名称。一般情况下,该元素应该包含子元素<param name=”filedName”>以指定被校验的Action名。
l param:validator元素下的元素。
示例如下:
<?xmlversion="1.0"encoding="GBK"?>
<!DOCTYPEvalidators PUBLIC"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<validatortype="int">
<paramname="fieldName">age</param>
<paramname="min">1</param>
<paramname="max">150</param>
<message>the age must be from 1 to 150!</message>
</validator>
<validatortype="email">
<paramname="fieldName">email_address</param>
<message>The eamil address you entered is not valid.</message>
</validator>
</validators>
上面介绍的两种校验方式都可以达到同样的效果,只是格式针对的对象不同。字段校验方式主要针对字段和属性,使用这种方式在校验时,对任何一个字段都能够返回一个明确的消息;而非子段校验方式则是将字段有效的组合在一起,这种方式不能对一个字段返回一个明确的消息。
3.校验器(validator)
字段校验方式和非字段校验方式校验方式,都需要用到校验器,下面就介绍一些常用的校验器。
(1) required校验器:要求指定的字段必须是非空的;
required字符校验方式:
<validators>
<fieldname="name">
<field-validatortype="required">
<message>the name is required!</message>
</field-validator>
</field>
</validators>
required非字符校验方式:
<validators>
<validatortype="required">
<paramname="fieldName">name</param>
<message>the name is required!</message>
</validator>
</validators>
(2) requiredstring校验器:要求字段值必须非空且长度必须大于0;
requiredstring字符校验方式:
<validators>
<fieldname="name">
<field-validatortype="requiredstring">
<message>the name is required!</message>
</field-validator>
</field>
</validators>
requiredstring非字符校验方式:
<validators>
<validatortype="requiredstring">
<paramname="fieldName">name</param>
<message>the name is required!</message>
</validator>
</validators>
(3) int校验器:整数校验器,可以指定字段的整数值必须在指定的范围内,需要标注min和max参数。(注:long、short和浮点数等校验器和int校验器类型)
int字符校验方式:
<validators>
<fieldname="age">
<field-validatortype="int">
<paramname="min">1</param>
<paramname="max">150</param>
<message>the age must be from 1 to 150!</message>
</field-validator>
</field>
</validators>
int非字符校验方式:
<validators>
<validatortype="int">
<paramname="fieldName">age</param>
<paramname="min">1</param>
<paramname="max">150</param>
<message>the age must be from 1 to 150!</message>
</validator>
</validators>
(4) date校验器:要求指定字段的日期在指定的范围内;
date字符校验方式:
<validators>
<fieldname="birthday">
<field-validatortype="date">
<message>The date you entered is not valid.</message>
</field-validator>
</field>
</validators>
date非字符校验方式:
<validators>
<validatortype="date">
<paramname="fieldName">birthday</param>
<message>the name is requred!</message>
</validator>
</validators>
(5) email校验器:用来校验邮箱地址是否合法;
email字符校验方式:
<validators>
<fieldname=" email_address ">
<field-validatortype=" email ">
<message> The eamil address you entered is not valid.</message>
</field-validator>
</field>
</validators>
email非字符校验方式:
<validators>
<validatortype="email">
<paramname="fieldName">email_address</param>
<message>The eamil address you entered is not valid.</message>
</validator>
</validators>
(6) stringlength校验器:校验字段的长度必须在指定的范围内。
stringlength字符校验方式:
<validators>
<fieldname="name">
<field-validatortype="stringlength">
<paramname="minLength">6</param>
<paramname="maxLength">20</param>
<message>the name must be from 6 to 20 char!</message>
</field-validator>
</field>
</validators>
stringlength非字符校验方式:
<validators>
<validatortype="stringlength">
<paramname="fieldName">name</param>
<paramname="minLength">6</param>
<paramname="maxLength">20</param>
<message>the age must be from 6 to 20 char!</message>
</validator>
</validators>
注释:如果想知道更多的校验器,可以找到位于xwork-2.0.4.jar压缩包中( com.opensymphony.xwork2.validator.validators)有个文件default.xml ,该文件中定义了Struts2框架内建的校验器。default.xml文件定义了常用的校验器类型,如下:
<validators>
<validatorname="required"class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/>
<validatorname="requiredstring"class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/>
<validatorname="int"class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/>
<validatorname="long"class="com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator"/>
<validatorname="short"class="com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator"/>
<validatorname="double"class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/>
<validatorname="date"class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/>
<validatorname="expression"class="com.opensymphony.xwork2.validator.validators.ExpressionValidator"/>
<validatorname="fieldexpression"class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/>
<validatorname="email"class="com.opensymphony.xwork2.validator.validators.EmailValidator"/>
<validatorname="url"class="com.opensymphony.xwork2.validator.validators.URLValidator"/>
<validatorname="visitor"class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/>
<validatorname="conversion"class="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"/>
<validatorname="stringlength"class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/>
<validatorname="regex"class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/>
<validatorname="conditionalvisitor"class="com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator"/>
</validators>
- Struts2数据校验(2)--使用XWork检验框架实现校验
- struts2:数据校验,通过XWork校验框架实现(validation.xml)
- struts2:数据校验,通过XWork校验框架实现(validation.xml)
- struts2:数据校验,通过XWork校验框架实现(validation.xml)
- 使用XWork校验框架
- 关于struts2 xwork数据校验
- Strusts2数据校验的方法二(通过XWork校验框架实现)
- XWork校验框架
- 关于struts2.5XWork校验框架的问题
- 使用Struts2验证框架实现输入校验
- 使用Struts2验证框架实现输入校验
- Struts2中的数据校验(二[验证框架校验]) .
- Struts2学习(八)数据校验实现
- 使用struts2的校验框架
- struts2的校验,检验email
- struts2的校验,检验email
- struts2校验(2)
- struts2中数据校验2
- 关于url-pattern的编写方式和路径总结
- 自定义可以设置EmptyView的RecyclerView
- 简单枚举类型——植物与颜色
- java 单向链表的基本操作
- 同时查询多张表中的数据个数
- Struts2数据校验(2)--使用XWork检验框架实现校验
- @RequestMapping 用法详解之地址映射(转)
- 桶排序算法实现-PHP
- Add Two Numbers
- i.MX6DL uboot 中 i2c4 总线配置
- 【转载】程序员谈学习:我为什么要学习Linux?
- 冒泡排序
- 企业微信对接操作
- quick cocos2dx grid3d 特效整理