Super Agile Struts開発記その9 - 検証メソッド
検証をcommons-validatorではなくメソッドで行いたい場合は、引数がなく戻り値がActionMessagesのメソッドを用意し、そのメソッド名を@Executeのvalidate属性で指定します。
検証メソッドがエラーのメッセージを返した場合は、実行メソッドは呼び出されず、@Inputで指定したページに遷移します。
エラーメッセージを保存する場所は、@ExecuteのsaveErrors属性で指定できます。デフォルトは、リクエストです。
@Input(path = "/greeting/input.jsp")
@Result(path = "/greeting/result.jsp")
public class ResultAction {public String name;
@Execute(validate = "validate")
public String execute() {
return "success";
}public ActionMessages validate() {
ActionMessages errors = new ActionMessages();
if (StringUtil.isEmpty(name)) {
errors.add("name", new ActionMessage("errors.required", "名前"));
}
return errors;
}
}
@Execute(saveErrors = SaveType.SESSION)