入力チェック
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 + _ + メソッド名」を指定する。
<html:javascript formName="deptActionForm_insert" />
などとして、submitボタンを
<s:submit property="insert" clientValidate="true">create2</s:submit>
みたいな感じにする。
1 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <html:javascript formName="deptActionForm_insert" /> <link rel="stylesheet" type="text/css" href="${f:url('/css/global.css')}" /> </head> <body> <html:errors /> <s:form> <table class="tablebg"> <tr> <td>deptNo</td> <td><html:text property="deptNo" /></td> </tr> <tr> <td>deptName</td> <td><html:text property="deptName" /></td> </tr> <tr> <td>loc</td> <td><html:text property="loc" /></td> </tr> </table> <!-- <input type="submit" name="insert" value="CREATE" clientValidate="true" /> --> <s:submit property="insert" clientValidate="true">create2</s:submit> </s:form> <br /> <br /> <s:link href="/dept/">list page</s:link> </body> </html> |
チェック用のメソッドを作る
フォームクラス
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に
<!-- エラーメッセージを一気に表示 --> <html:errors /> <!-- hogeプロパティに関するエラーメッセージを表示 --> <html:errors property="hoge"/>
のように書く。 または、アノテーションで直接指定する。
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
とする。
[通知用URL]
Tweet
最終更新時間:2013年06月02日 23時07分29秒