Struts2 验证规则配置文件

简介: 1. Action级别校验命名格式: ActionClassName-validation.xml 2. Action中某个方法的校验命名格式: ActionClassName-ActionAliasName-validation.xml 注意:这里的ActionAliasName(action别名)指的是struts.xml中Action name="XX"的xx的名称,而不是method="XX"的名称。

1. Action级别校验命名格式:
ActionClassName-validation.xml
2. Action中某个方法的校验命名格式:
ActionClassName-ActionAliasName-validation.xml
注意:这里的ActionAliasName(action别名)指的是struts.xml中Action name="XX"的xx的名称,而不是method="XX"的名称。
3. 如果以上2个校验文件都存在,那么2个文件都会被执行;如果2个校验文件中的校验属性相同那么将被执行同校验属性中ActionClassName-ActionAliasName-validation.xml中的校验规则。
4. 在使用visitor校验器的时候,<message>out</message>必须要配置且out消息必须得写,否则会报空指针错误。
5. 正则表达式校验配置

 

<?xml version="1.0" encoding="UTF-8"?>
<!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.username">
        <field-validator type="requiredstring">
            <param name="trim">true</param>
            <message>用户名不能为空</message>
        </field-validator>
        <field-validator type="regex">
            <param name="regex"><![CDATA[(\w{4,10})]]></param>
            <message>姓名要在4-10位之间</message>
        </field-validator>
    </field>

    <!-- 添加对密码的校验 -->
    <field name="user.password">
        <field-validator type="requiredstring">
            <param name="trim">true</param>
            <message>密码不能为空</message>
        </field-validator>
        <field-validator type="regex">
            <param name="regexExpression"><![CDATA[(\w{4,10})]]></param>
            <message>密码输入不合法,必须为长度在4~10之间的数字或者字母</message>
        </field-validator>
    </field>
</validators>

其中以上配置文件中红色的属性是正确的。官方的Demo中的属性如下:

<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
        "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
  <field name="bar">
      <field-validator type="regex">
          <param name="expression">[0-9],[0-9]</param>
          <message>The value of bar must be in the format "x, y", where x and y are between 0 and 9</message>
     </field-validator>
  </field>
</validators>

如果属性配置成“expression”,将不能正确进行属性验证!

作者: Candyメ奶糖

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
博文来源广泛,如原作者认为我侵犯知识产权,请尽快给我发邮件 359031282@qq.com联系,我将以第一时间删除相关内容。

目录
相关文章
|
3月前
|
XML JSON Java
SpringBoot 配置文件编写及使用方式 (拒绝硬编码)
SpringBoot 配置文件编写及使用方式 (拒绝硬编码)
27 0
|
搜索推荐
rpcms配置自定义伪静态规则的方法
rpcms默认自带有伪静态规则,可以直接使用,但会千篇一律。如果根据自己需求,个性化的自定义伪静态规则就舒服了。如何去配置呢? 在/setting/route/index.php文件中,这个文件就是默认的伪静态规则,可以在这里面去修改规则。如何配置呢?规则采用的是数组方式配置,含有四个元素: model:模块路径,格式:应用/控制器/方法;pattern:自定义的路由规则;replace:变量规则;ext:后缀名,支持多个,未配置则默认html。
|
NoSQL 中间件 关系型数据库
Springboot 自定义配置文件加密规则
一般情况下,我们做项目的时候,中间件例如mysql,redis, zk 的账号密码一般都是写在配置文件里面的, 这样代码泄露的情况下, 就很不安全。
Springboot 自定义配置文件加密规则
|
安全 Java 程序员
项目中的shiro版本从1.6.0改为1.8.0之后,拦截器不生效?
由于前段时间,我们的服务器被阿里云检测到现在使用的shiro版本有漏洞,项目经理让提高版本。遂把shiro的版本改为了1.8.0,改完之后,竟然发现,项目中配置的登录拦截路径不生效了,任何请求都可以通过。我一度以为这是shiro 1.8版本的一个漏洞。但是作为程序员的我,需要找到到底是什么原因,哪里他们哪里出现了bug(说不定还可以给官方提供建议,手动狗头)。于是,我开始研究shiro底层代码。
899 0
|
XML Java Apache
配置struts-2.5.16必需jar包Struts2的特性变动
1、jar包的变动 必需jar包,旧版本:    必需jar包,新版本:    在struts-2.5.16版本的lib目录下没有xwork-core的jar包,原因是被合并到struts-core这个jar里了。
2004 0
|
XML 数据格式
|
Java Apache 数据格式