ひがやすを技術ブログ

電通国際情報サービスのプログラマ

Super Agile Struts開発記その9 - 検証メソッド

検証をcommons-validatorではなくメソッドで行いたい場合は、引数がなく戻り値がActionMessagesのメソッドを用意し、そのメソッド名を@Executeのvalidate属性で指定します。
検証メソッドがエラーのメッセージを返した場合は、実行メソッドは呼び出されず、@Inputで指定したページに遷移します。


@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属性で指定できます。デフォルトは、リクエストです。

@Execute(saveErrors = SaveType.SESSION)