- - PR -
StrutsのValidatorの使用に対して
| 投稿者 | 投稿内容 | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-04-22 22:51
StrutsのValidatorの使用についていくつかの疑問があります。
本を探しても答えがなかったので聞いて見たいと思います。自分でテストして見てもよさそうですが事情があり、なかなか。。。。 1.複数の項目を持つフォームに対して、複数のバリデーション・エラーがあった場合、それは全部チェックされた後一括で表示されるか?でないと一個ずつ表示されるのか? 2.標準で提供されるValidator(required, intなど)のエラーメッセージを変える事は可能か? 3.フォームの項目名が動的に変わる場合はどう対応するか? 以上、御意見お願いします。 | ||||||||||||||||
|
投稿日時: 2004-04-23 09:08
試してみましょう。
可能。
使い方が間違っています。 | ||||||||||||||||
|
投稿日時: 2004-04-23 17:13
[quote]
ふーばーさんの書き込み (2004-04-23 09:08) より:
これは出来る事を確認しました。
おっしゃるとおり、可能でした。こんな感じ。。 <formset> <form name="/loginAction"> <field property="virtualMemberId" depends="required,integer"> <arg0 key="errors.memberId"/> <msg name="required" key="customizedRequiredMsg"/> ←独自メッセージ設定。 </field> ・・・ </form> </formset>
使い方は間違っているってなんでしょうか?そんな機能にも対応が出来るか聞いているつもりですが。。対応出来ないとの事でしょうか? | ||||||||||||||||
|
投稿日時: 2004-04-23 17:42
表現が悪かったですね。標準的なStrutsの使い方をすると対応できません。 そういう要件にStrutsを持ってくるのは間違いです。(ということが言いたかった) 無理矢理なんとかすることは可能です。 | ||||||||||||||||
|
投稿日時: 2004-04-23 21:48
ActionFormではなくてhtmlのフォームのことですよね? だったら、mapで受ける方法があったような気がします。 手元に資料がないため、具体的に答えられません。 | ||||||||||||||||
|
投稿日時: 2004-04-24 10:26
それって、DynamicValidatorActionかDyanmicValidatorActionFormを利用する事を言ってるんでしょうか?だったら、その場合、struts-confign.xmlにその項目名とデータタイプを記述する必要がありますね?でも項目名が動的に変更されるなら−例えば一覧画面のインデックス付き項目名など−それはか事前に書く方法が無いですよね? 逃げ道はもし1画面に最大20件を表示するとしたらそれを全部予め定義して置くくらいでしょうかね?表示項目数が足りない場合はただ無視されるだけでしょうから。。 でも何かばかばからしい。。。 | ||||||||||||||||
|
投稿日時: 2004-04-26 08:39
とは限らないと思いますよ。普通のActionForm継承クラスでもフィールドにMapやListを 使えると思います。
「動的に変更」の度合いの問題ですね。 あるときは「foo」、またあるときば「bar」というように自由自在に項目名が変わるのは 私が言っているように、対応は難しいと思います。ただ、項目数が問題で、項目名は何でも 構わないのであれば、foo[1]、foo[2] というような項目名をつけることで、Listで取得 することができるはずです。その場合は、html タグの indexed 属性を調べてください。 | ||||||||||||||||
|
投稿日時: 2004-04-26 22:09
今回ので使えるかどうかは別にして、適当にネットを見ていると
いろいろあるもんですな。 http://d.hatena.ne.jp/nadi/20040128#p1 http://d.hatena.ne.jp/nadi/20040129#p3 http://jakarta.apache.org/commons/sandbox/scaffold/apidocs/index.html | ||||||||||||||||
