struts2中的数据校验文件配置方法
2014-08-27 23:04
363 查看
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<!--校验开始 -->
<validators>
必填校验器
<field name="requiredValidatorField">
<field-validator type="required">
<message >必填内容</message>
</field-validator>
</field>
必填字符串校验
<field name="requiredStringValidatorField">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message >字符串必填校验</message>
</field-validator>
</field>
对int类型的校验
<field name="integerValidatorField">
<field-validator type="int">
<param name="min">1</param>
<param name="max">10</param>
<message key="validate.integerValidatorField" />
</field-validator>
</field>
对日期的校验
<field name="dateValidatorField">
<field-validator type="date">
<param name="min">01/01/1990</param>
<param name="max">01/01/2000</param>
<message key="validate.dateValidatorField" />
</field-validator>
</field>
对email的校验
<field name="emailValidatorField">
<field-validator type="email">
<message key="validate.emailValidatorField" />
</field-validator>
</field>
对URL的校验
<field name="urlValidatorField">
<field-validator type="url">
<message key="validate.urlValidatorField" />
</field-validator>
</field>
对字符串长度的校验
<field name="stringLengthValidatorField">
<field-validator type="stringlength">
<param name="maxLength">4</param>
<param name="minLength">2</param>
<param name="trim">true</param>
<message key="validate.stringLengthValidatorField" />
</field-validator>
</field>
对正则表达式的校验
<field name="regexValidatorField">
<field-validator type="regex">
<param name="expression">.*\.txt</param>
<message key="validate.regexValidatorField" />
</field-validator>
</field>
对字段表达式的校验
<field name="fieldExpressionValidatorField">
<field-validator type="fieldexpression">
<param name="expression">(fieldExpressionValidatorField == requiredValidatorField)</param>
<message key="validate.fieldExpressionValidatorField" />
</field-validator>
</field>
</validators>
----------------------------------------------------------------------------------------------
以上均为字段校验器;对于非字段校验器:
如下:
<validator type="stringlength">
<param name="fieldName">password</param>
<param name="maxLength">14</param>
<param name="minLength">8</param>
<param name="trim">true</param>
<message>密码只能为8到14位</message>
</validator>
--------------------------------------------------------------------------------------------------
校验器短路:
<field-validator type="fieldexpression" short-circuit="true">
校验器的执行顺序
1. 所有非字段校验风格的校验器优先于字段校验风格的校验器;
2. 所有非字段校验风格的校验器中,排在前面的会先执行;
3. 所有字段校验风格的校验器,排在前面的会先执行;
校验器的短路原则
1. 所有非字段检验器时最优先执行的,如果某个非字段校验器校验失败了,则该字段上的所有字段校验器都不会获得校验机会;
2. 非字段校验校验失败,不会阻止其他非字段校验执行;
3. 如果一个字段校验器校验失败后,则该字段下且排在该校验失败后的检验器之后的其他字段校验器不会获得校验机会;
4. 字段校验器永远不会阻止非字段校验器的执行!
短路校验器
短路校验器:只需在或元素中添加short-circuit=”true”属性。
注:在struts2.1.6版本,已经支持客户端的短路校验。
--------------------------------------------------------------------------------------------------
示例代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>用户名必须填写</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>密码必须填写</message>
</field-validator>
<field-validator type="stringlength">
<param name="trim">true</param>
<param name="maxLength">14</param>
<param name="minLength">8</param>
<message>密码只能为8到14位</message>
</field-validator>
</field>
</validators>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<!--校验开始 -->
<validators>
必填校验器
<field name="requiredValidatorField">
<field-validator type="required">
<message >必填内容</message>
</field-validator>
</field>
必填字符串校验
<field name="requiredStringValidatorField">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message >字符串必填校验</message>
</field-validator>
</field>
对int类型的校验
<field name="integerValidatorField">
<field-validator type="int">
<param name="min">1</param>
<param name="max">10</param>
<message key="validate.integerValidatorField" />
</field-validator>
</field>
对日期的校验
<field name="dateValidatorField">
<field-validator type="date">
<param name="min">01/01/1990</param>
<param name="max">01/01/2000</param>
<message key="validate.dateValidatorField" />
</field-validator>
</field>
对email的校验
<field name="emailValidatorField">
<field-validator type="email">
<message key="validate.emailValidatorField" />
</field-validator>
</field>
对URL的校验
<field name="urlValidatorField">
<field-validator type="url">
<message key="validate.urlValidatorField" />
</field-validator>
</field>
对字符串长度的校验
<field name="stringLengthValidatorField">
<field-validator type="stringlength">
<param name="maxLength">4</param>
<param name="minLength">2</param>
<param name="trim">true</param>
<message key="validate.stringLengthValidatorField" />
</field-validator>
</field>
对正则表达式的校验
<field name="regexValidatorField">
<field-validator type="regex">
<param name="expression">.*\.txt</param>
<message key="validate.regexValidatorField" />
</field-validator>
</field>
对字段表达式的校验
<field name="fieldExpressionValidatorField">
<field-validator type="fieldexpression">
<param name="expression">(fieldExpressionValidatorField == requiredValidatorField)</param>
<message key="validate.fieldExpressionValidatorField" />
</field-validator>
</field>
</validators>
----------------------------------------------------------------------------------------------
以上均为字段校验器;对于非字段校验器:
如下:
<validator type="stringlength">
<param name="fieldName">password</param>
<param name="maxLength">14</param>
<param name="minLength">8</param>
<param name="trim">true</param>
<message>密码只能为8到14位</message>
</validator>
--------------------------------------------------------------------------------------------------
校验器短路:
<field-validator type="fieldexpression" short-circuit="true">
校验器的执行顺序
1. 所有非字段校验风格的校验器优先于字段校验风格的校验器;
2. 所有非字段校验风格的校验器中,排在前面的会先执行;
3. 所有字段校验风格的校验器,排在前面的会先执行;
校验器的短路原则
1. 所有非字段检验器时最优先执行的,如果某个非字段校验器校验失败了,则该字段上的所有字段校验器都不会获得校验机会;
2. 非字段校验校验失败,不会阻止其他非字段校验执行;
3. 如果一个字段校验器校验失败后,则该字段下且排在该校验失败后的检验器之后的其他字段校验器不会获得校验机会;
4. 字段校验器永远不会阻止非字段校验器的执行!
短路校验器
短路校验器:只需在或元素中添加short-circuit=”true”属性。
注:在struts2.1.6版本,已经支持客户端的短路校验。
--------------------------------------------------------------------------------------------------
示例代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>用户名必须填写</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>密码必须填写</message>
</field-validator>
<field-validator type="stringlength">
<param name="trim">true</param>
<param name="maxLength">14</param>
<param name="minLength">8</param>
<message>密码只能为8到14位</message>
</field-validator>
</field>
</validators>
相关文章推荐
- struts2的校验文件DTD配置出错的解决方法
- struts2对数据校验---基于xml配置文件
- struts2中的数据校验文件配置
- struts2 action 配置方法 &&struts2的配置文件
- 几种从配置文件中读取数据,设置参数的方法
- struts2的输入校验框架及DTD文件配置
- Struts2使用XML实现Validation校验数据的两种方法
- struts2与hibernate 复合主外键在映射文件*.hbm.xml中的配置,为双外键的配置方法
- struts2中以xml配置方式对action的所有方法进行校验
- Struts2使用通配符加载配置文件和通配符方法的底层实现学习
- struts2:数据校验,通过Action中的validate()方法实现校验(续:多业务方法时的不同验证处理)
- struts2 修改配置文件的默认位置报异常的解决方法
- 复习struts2之基于XML配置文件实现指定方法的输入校验以及基于XML校验的一些特点
- Struts2为应用指定多个配置文件和动态方法调用以及通配符的使用方法
- Struts2的输入校验(1):编写校验规则文件(方法一)
- struts2中配置文件的常量使用方法
- .NET 2.0获取配置文件AppSettings和ConnectionStrings节数据的方法
- Struts2基于XML配置方式实现对action的所有方法进行输入校验
- struts2中以xml配置方式对action的所有方法进行校验
- Spring和Struts2配置文件不在默认路径下的web.xml配置方法