- - PR -
strutsでカスタムバリデータ
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-06-23 01:25
こんばんは。
javascriptとstrutsでwebアプリケーション開発を行っています。 <html:form action="xxxx"> <input type="text" name="T1"> <input type="text" name="T2"> <input type="submit" value="確認"> </form> jspファイルでテキストボックスを2つ作ります。(上の要領で) やりたい事↓ ・name="T1"のテキストボックスが空欄だったら「T1の値が不正です。」と警告ダイアログを表示させる。 ・name="T2"のテキストボックスが空欄だったら「T2の値が不正です。」と警告ダイアログを表示させる。 ・name="T1" name="T2"両方のテキストボックスが空欄だったら「両方不正です。」と警告ダイアログボックスを表示させる。 これをvalidateを使って実装します。 ・name="T1"のテキストボックスが空欄だったら「T1の値が不正です。」と警告ダイアログを表示させる。 ・name="T2"のテキストボックスが空欄だったら「T2の値が不正です。」と警告ダイアログを表示させる。 この条件は満たす事が出来るのですが、 ・name="T1" name="T2"両方のテキストボックスが空欄だったら「T1の値が不正です。\nT2の値が不正です。」となってしまいます。(\nは改行) 色々調べてコーディングしてみましたがうまく行きません。 ・validate のvalidwhenを使ってみましたが、警告ダイアログの表示が出来ませんでした。 ・カスタムバリデータを使ってみましたが、JSF向きのものらしいです。 (strutsでは使う事が出来ませんでした。) ☆javascriptのみを使って実装する方法はなしで考えます。 何か良い案ありましたらご指導宜しくお願いします。 |
|
投稿日時: 2008-06-23 22:48
具体的にどのような方法で実装されたのかがわかりませんが、form は ValidatorForm を extend して、validation.xml にフィールドのバリデーションルールを記述したと考えてよろしいでしょうか。
やや記憶が定かではありませんが、この方法では複数項目を対象として一つのメッセージを出力するようなルールは書けなかったような気がします。 (私が調べた範囲では見つからなかっただけかもしれません。) この場合は、関連する項目のルールを validation.xml からは削除し、自前で ValidatorForm#validate() メソッドをオーバーライドし、その中でバリデーション処理を実装する方法でできたように思います。(これも定かではありませんが(_ _)) いくつか注意が必要ですので、この点はお気を付けください。
メソッド引数は省略しましたが、API に従って適宜補ってください。 以上、ご参考になれば幸いです。 |
1