!!!入力チェック
http://yakinikunotare.boo.jp/orebase2/sastruts/input_check
http://d.hatena.ne.jp/i-takehiro/20080710/1215652817
http://ichitcltk.hustle.ne.jp/gudon/modules/pico_rd/index.php?content_id=11
!!プリセットのチェックを使う
必須チェックとかならformの該当プロパティにアノテーションで
@Required
public String hoge;
項目の名称を指定したいときは
@Required(arg0=@Arg(key="お名前", resource=false))
などとする。
検証を実際に行うにはSAStruts/Actionでのメソッドにつけるアノテーションを
@Execute(validator=true, input="hoge.jsp")
このように印しておく必要がある。
inputに設定する値は、エラー時に表示する jsp を指定する。
基本的には action と同じでいいはず。
!!JavaScriptでクライアント側で入力チェックする
jspでhtml:javascriptタグを使って、入力チェック用のJavaScript を自動生成する。
formName属性には、「アクション名 + Form + _ + メソッド名」を指定する。
などとして、submitボタンを
create2
みたいな感じにする。
{{code HTML,
create2
list page
}}
!!チェック用のメソッドを作る
フォームクラス
class TestForm {
....
public ActionMessages validate() {
ActionMessages errors = new ActionMessages();
int result = Integer.parseInt(salary);
if (result % 3 != 0) {
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
"errors.custom.salary"));
}
return errors;
}
アクションクラス
class TestAction {
....
Execute(validate = "validate", input = "index.jsp")
public String result() {
return "result.jsp";
}
!エラーメッセージの表示
エラーメッセージを表示するには対象のjspに
のように書く。 または、アノテーションで直接指定する。
public class HogeForm implements Serializable{
private static final long serialVersionUID = 1L;
@Required(arg0=@Arg(key="お名前", resource=false))
public String name;
resource = false は、「application_ja.properties」に登録されている項目かを表す。
application_ja.propertiesに登録せず使用する場合は
resource = false
とする。
{{category2 プログラミング言語,Servlet & Struts}}