- PR -

StrutsのValidatorの使用に対して

投稿者投稿内容
sumin
ベテラン
会議室デビュー日: 2003/07/17
投稿数: 93
投稿日時: 2004-04-22 22:51
StrutsのValidatorの使用についていくつかの疑問があります。
本を探しても答えがなかったので聞いて見たいと思います。自分でテストして見てもよさそうですが事情があり、なかなか。。。。

1.複数の項目を持つフォームに対して、複数のバリデーション・エラーがあった場合、それは全部チェックされた後一括で表示されるか?でないと一個ずつ表示されるのか?

2.標準で提供されるValidator(required, intなど)のエラーメッセージを変える事は可能か?

3.フォームの項目名が動的に変わる場合はどう対応するか?

以上、御意見お願いします。
ふーばー
大ベテラン
会議室デビュー日: 2003/06/05
投稿数: 163
投稿日時: 2004-04-23 09:08
引用:

1.複数の項目を持つフォームに対して、複数のバリデーション・エラーがあった場合、それは全部チェックされた後一括で表示されるか?でないと一個ずつ表示されるのか?



試してみましょう。

引用:

2.標準で提供されるValidator(required, intなど)のエラーメッセージを変える事は可能か?



可能。

引用:

3.フォームの項目名が動的に変わる場合はどう対応するか?



使い方が間違っています。
sumin
ベテラン
会議室デビュー日: 2003/07/17
投稿数: 93
投稿日時: 2004-04-23 17:13
[quote]
ふーばーさんの書き込み (2004-04-23 09:08) より:
引用:

1.複数の項目を持つフォームに対して、複数のバリデーション・エラーがあった場合、それは全部チェックされた後一括で表示されるか?でないと一個ずつ表示されるのか?



これは出来る事を確認しました。

引用:

2.標準で提供されるValidator(required, intなど)のエラーメッセージを変える事は可能か?



おっしゃるとおり、可能でした。こんな感じ。。
 <formset>
<form name="/loginAction">
<field
property="virtualMemberId"
depends="required,integer">
<arg0 key="errors.memberId"/>
<msg name="required" key="customizedRequiredMsg"/> ←独自メッセージ設定。
</field>

・・・

</form>
</formset>

引用:

3.フォームの項目名が動的に変わる場合はどう対応するか?



使い方は間違っているってなんでしょうか?そんな機能にも対応が出来るか聞いているつもりですが。。対応出来ないとの事でしょうか?
ふーばー
大ベテラン
会議室デビュー日: 2003/06/05
投稿数: 163
投稿日時: 2004-04-23 17:42
引用:

suminさんの書き込み (2004-04-23 17:13) より:
引用:

3.フォームの項目名が動的に変わる場合はどう対応するか?



使い方は間違っているってなんでしょうか?そんな機能にも対応が出来るか聞いているつもりですが。。対応出来ないとの事でしょうか?



表現が悪かったですね。標準的なStrutsの使い方をすると対応できません。
そういう要件にStrutsを持ってくるのは間違いです。(ということが言いたかった)
無理矢理なんとかすることは可能です。
aa
ぬし
会議室デビュー日: 2004/01/08
投稿数: 299
投稿日時: 2004-04-23 21:48
引用:

3.フォームの項目名が動的に変わる場合はどう対応するか?


ActionFormではなくてhtmlのフォームのことですよね?
だったら、mapで受ける方法があったような気がします。
手元に資料がないため、具体的に答えられません。
sumin
ベテラン
会議室デビュー日: 2003/07/17
投稿数: 93
投稿日時: 2004-04-24 10:26
引用:

aaさんの書き込み (2004-04-23 21:48) より:
引用:

3.フォームの項目名が動的に変わる場合はどう対応するか?


ActionFormではなくてhtmlのフォームのことですよね?
だったら、mapで受ける方法があったような気がします。
手元に資料がないため、具体的に答えられません。



それって、DynamicValidatorActionかDyanmicValidatorActionFormを利用する事を言ってるんでしょうか?だったら、その場合、struts-confign.xmlにその項目名とデータタイプを記述する必要がありますね?でも項目名が動的に変更されるなら−例えば一覧画面のインデックス付き項目名など−それはか事前に書く方法が無いですよね?

逃げ道はもし1画面に最大20件を表示するとしたらそれを全部予め定義して置くくらいでしょうかね?表示項目数が足りない場合はただ無視されるだけでしょうから。。
でも何かばかばからしい。。。
ふーばー
大ベテラン
会議室デビュー日: 2003/06/05
投稿数: 163
投稿日時: 2004-04-26 08:39
引用:

suminさんの書き込み (2004-04-24 10:26) より:
引用:

aaさんの書き込み (2004-04-23 21:48) より:
引用:

3.フォームの項目名が動的に変わる場合はどう対応するか?


ActionFormではなくてhtmlのフォームのことですよね?
だったら、mapで受ける方法があったような気がします。
手元に資料がないため、具体的に答えられません。



それって、DynamicValidatorActionかDyanmicValidatorActionFormを利用する事を言ってるんでしょうか?



とは限らないと思いますよ。普通のActionForm継承クラスでもフィールドにMapやListを
使えると思います。

引用:

       だったら、その場合、struts-confign.xmlにその項目名とデータタイプを記述する必要がありますね?でも項目名が動的に変更されるなら−例えば一覧画面のインデックス付き項目名など−それはか事前に書く方法が無いですよね?



「動的に変更」の度合いの問題ですね。
あるときは「foo」、またあるときば「bar」というように自由自在に項目名が変わるのは
私が言っているように、対応は難しいと思います。ただ、項目数が問題で、項目名は何でも
構わないのであれば、foo[1]、foo[2] というような項目名をつけることで、Listで取得
することができるはずです。その場合は、html タグの indexed 属性を調べてください。
aa
ぬし
会議室デビュー日: 2004/01/08
投稿数: 299
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)