Cubby Validatonの定義

http://d.hatena.ne.jp/CamelCase/20071204の「インターフェイスメタデータ代わりに使う」方式がよかったので、以下のようにクラスを指定するのもいいかなと思っています。

Before:

public class TodoAction extends Action {
  public ValidationRules loginValidation = new DefaultValidationRules() {
    public void initialize() {
      add("userId", new RequiredValidator());
      add("password", new RequiredValidator());
      add(new UserValidationRule());
    }
  };

  @Validation(rules = "loginValidation", errorPage = "/todo/login.jsp")
    public ActionResult process() {
    return new Redirect("/todo/");
  }
}

After:

public class TodoAction extends Action {
  public class LoginValidation extends DefaultValidationRules {
    public void initialize() {
      add("userId", new RequiredValidator());
      add("password", new RequiredValidator());
      add(new UserValidationRule());
    }
  }

  @Validation(rules = LoginValidation.class, errorPage = "/todo/login.jsp")
  public ActionResult process() {
    return new Redirect("/todo/");
  }
}

追記:インタフェイス版もなかなかおもしろいなー。