struts2的编程式的非空验证

1.首先有一个Action类,如下:

public class RegAction extends ActionSupport {

 private static final long serialVersionUID = 7198855508667163247L;

 private String name;

 public String getName() {   return name;  }

 public void setName(String name) {   this.name = name;  }

 

   public String toReg() {  

     System.out.println("toReg");  

     return "toReg";  

   }

       public String reg() {  

     System.out.println("reg");  

     return "reg";  

   }

 public void validate() {  

   if(this.name == null || this.name.trim().length() == 0){   

     this.addFieldError("message", "必选项");   

   }   super.validate();  

 }

}

如果这样写的话,validate方法会对以上的toReg() 和reg()都进行验证,

指定针对某个方法进行验证的方法有3中:

  1. 在不进行校验的方法上加上注解 : @SkipValidation,这样这个方法就不会进行校验了

    eg: 如下就不会对toReg方法进行验证

    @SkipValidation

    public String toReg() {
        System.out.println("toReg");
        return "toReg";
      }

  2. 把validate方法后面加上要验证的方法名字,注意验证的方法名字首字母要大写: validateReg ,或者validateDoReg,这样就只会对reg方法进行验证

  eg: 如下只会对reg方法进行验证

  public void validateReg() {
    if(this.name == null || this.name.trim().length() == 0){
       this.addFieldError("message", "必选项");
    }
      super.validate();
   }

  3. 在struts.xml文件中覆盖默认栈(defaultStack)中的validation中的excludeMethods属性,把不需要验证的方法写到<params></params>中,这样的话就不会对标签<params>中的方法进行验证了.

  eg:<interceptor-ref name="defaultStack">
        <param name="validation.excludeMethods">input,back,cancel,browse,toReg</param>
     </interceptor-ref>

转载于:https://www.cnblogs.com/liyajie/archive/2013/04/16/3023530.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值