zoukankan      html  css  js  c++  java
  • 初学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中的某个方法,来进行校验,基本不用,说起来还啰嗦,就不写了

  • 相关阅读:
    axios跨域问题(包括开发环境和生产环境)
    vue高亮一级、二级导航
    vue配置路由时报错 Error in render: "RangeError: Maximum call stack size exceeded"
    win10使用L2TP连接失败,报远程服务器未响应错误解决办法,亲测可用!
    pywinauto教程
    Python结合Pywinauto 进行 Windows UI 自动化
    Pywinauto自动化操作PC微信提取好友微信号
    Debian9 配置kali(xfce4、Metasploit、wireshark)
    Kali开启ssh
    从域环境搭建到域渗透
  • 原文地址:https://www.cnblogs.com/hujiapeng/p/4680879.html
Copyright © 2011-2022 走看看