• 初学structs2,表单验证简单补充


    一、使用注解方式,跳过验证某个方法

    由于在开发中,我们不需在请求每一个action类中的方法时都要走validate方法,那么我们可以在这些不需要验证的方法上加上@SkipValidation注解即可

    二、不重写Validate方法下,通过使用validate或validateDo前缀来指定类中哪个方法需要进行验证

    如果一个Action类中只有几个方法需要验证,而大部分不需要,那么就可以使用指定哪个方法需要进行验证的方式来做如下两个方法

    public  void  validateSearch(){            

    if(name==null||name.equals("")){

    addFieldError("name","用户名为空");

    }

    }

    public  void  validateDoSearch(){

    if(name==null||name.equals("")){

    addFieldError("name","用户名为空");

    }

    }

    三、通过配置来对Bean属性进行验证(此方法自己试了一次,然后琢磨了一段时间,竟然没有试验成功,基于后期用到的可能性不大就没有继续研究)

    在action类的包下,要与action类同级别,添加xml文件,action类名-validation.xml,action类中也就不用重写validate方法了

    假设action类中有String类型的name和Integer类型的age两个字段,xml文件的内容如下

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE validators PUBLIC
            "-//Apache Struts//XWork Validator Definition 1.0//EN"
            "http://struts.apache.org/dtds/xwork-validator-definition-1.0.dtd">
    <validators>
        <!-- Action中要校验的字段 -->
        <field name="name">
            <!-- 指定校验器 -->
            <field-validator type="requiredstring">
                <!-- 配置校验参数 -->
                <!-- <param name="trim">false</param>是否移除前后空格 -->
                <!-- 校验失败显示信息 -->
                <message>用户名不能为空</message>
            </field-validator>
            <!-- 增加另一个校验器,使用正则校验器
            <field-validator type="regex">
                <param name="regex">^([a-z0-9_.-]+)@([da-z.-]+).([a-z.]{2,6})$</param>
                <message>用户名必须是邮箱</message>
            </field-validator> -->
        </field>
        <!-- 校验年龄字段,整数类型,范围0~120 -->
        <field name="age">
            <!-- 指定校验器 -->
            <field-validator type="int">
                <!-- 配置校验参数 -->
                <param name="min">0</param>
                <param name="max">120</param>
                <message>填写的年龄必须在0~120之间</message>
            </field-validator>
        </field>
    </validators>

    四,通过配置,还可以指定action中的某个方法,来进行校验,基本不用,说起来还啰嗦,就不写了

  • 相关阅读:
    hdu 1588 求f(b) +f(k+b) +f(2k+b) +f((n-1)k +b) 之和 (矩阵快速幂)
    poj 3233 S = A + A^2 + A^3 + … + A^k A是一个n X n矩阵 (矩阵快速幂)
    hdu 1757 和1005差不多 (矩阵快速幂)
    D 矩阵快速幂
    poj 3734 方块涂色 求红色 绿色方块都为偶数的方案数 (矩阵快速幂)
    hdu 1005 根据递推公式构造矩阵 ( 矩阵快速幂)
    hdu 4549 M斐波拉契 (矩阵快速幂 + 费马小定理)
    UVa 1643 Angle and Squares (计算几何)
    UVa 11040 Add bricks in the wall (水题递推)
    UVa 1336 Fixing the Great Wall (区间DP)
  • 原文地址:https://www.cnblogs.com/hujiapeng/p/4680879.html
Copyright © 2020-2023  润新知