Struts2输入验证

Struts2输入验证

标签: JAVA框架


一、输入验证

用户输入的内容进行验证
客户端验证 用js
服务端的验证

实际开发的时候,客户端和服务端都验证


1、编程式验证
    a、针对动作类中的所有动作方法进行验证
        1、动作类需要实现ActionSupport,覆盖public void validate()
        2、方法中,编写你的验证规则,不正确情况调用addFieldError添加错误信息
        3、验证失败
    视图:会自动转向一个name=input的逻辑视图
错误消息提示,在structs2标签库中提示,s:fielderror
struct2标签库使用规则:
引入struct2标签库<%@taglib uri = "/structs-tags" prefix="s" %>
    <s:fielderror></s:fielderror>
    b、针对动作类中的某个方法不想验证
      方式一:简单  使用一个注解
@SkipValidation
    public String query(){
        System.out.println("query");
        System.out.println("11"+custom);
        //bs.register(custom);
        return SUCCESS;
    }
方式二:只针对某一个方法进行验证,如只针对register进行验证
可以定义一个方法public void validateRegister() 这样就只针对register进行验证


2、声明式验证
把验证规则写到配置文件中
a、针对动作类中所有的方法进行验证
在动作类所在的包中建立:动作类名-validation.xml配置文件
文件具体代码见工程
b、针对动作类中的指定动作方法进行验证
在动作类所在的包中建立:动作类名-动作名(是请求的struts.xml配置文件中的)-validation.xml配置文件。
 <!--field 指定要验证的字段 name是字段名 和表单中的名称一致  -->
 <field name="username">
 <!--指定验证规则 type 是验证规则   required是struts2内置的验证器
 内置验证器在xwork-core-2.3.34.jar包中的com\opensymphony\xwork2\validator\validators\default.xml文件中
 -->
    <field-validator type="requiredstring">
    <param name="trim">true</param>
    <message>用户名不能为空</message>
    </field-validator>

    <field-validator type="regex">
    <param name="regexExpression">^[a-zA-Z]\w{5,15}$</param>
    <message>用户必须为6到16位,必须是英文字母数字下划线</message>
    </field-validator>
 </field>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值