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>

相关文章:

  • 2022-12-23
  • 2021-08-15
  • 2021-08-30
  • 2021-10-17
  • 2022-12-23
  • 2021-11-17
  • 2021-11-11
  • 2022-12-23
猜你喜欢
  • 2021-10-26
  • 2022-01-16
  • 2022-12-23
  • 2021-09-08
  • 2021-11-28
相关资源
相似解决方案