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>