- ベストアンサー
struts validator での疑問
疑問1 jspのformの中にボタンが複数ある場合(A.B.C) Aだけにバリデーションチェックを限定する事は可能ですか? 現在A、B,Cのボタンすべてにバリデーションチェックが入っています。 疑問2 バリデーションチェックをするための項目指定は<html:text といった項目のpropertyでないとダメなのでしょうか?input typeでは無理?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
しばらくStrutsを触ってないので、うろ覚えですが・・・。 >jspのformの中にボタンが複数ある場合(A.B.C) >Aだけにバリデーションチェックを限定する事は可能ですか? これは3つボタンがあって、Aをクリックしたときだけバリデーションが機能するようにしたい、ということですか。 Strutsのバリデーションは、アクションフォームに保持されるフィールドに対して、各フィールドごとに行われるものです。要するに、どのボタンでSubmitされたかというのは関係ないはずです。方法はあるのかもしれませんが、機能として「どういう形で送信されたのであれ、このフィールドは必ずこのチェックがされるようにする」というものだったはずです。ですから、「特定の条件のときだけこのフィールドをチェックする」というのは、バリデーションの役割とはやや異なります。独自に処理を作成したほうがよいのではないかと思います。 >バリデーションチェックをするための項目指定は<html:text といった項目のpropertyでないとダメなのでしょうか?input typeでは無理? <input>タグでは、アクションフォームに値が保管されないのでは? アクションフォーム内のフィールドに対し処理がされるものですから、アクションフォームに保管されないものはチェックできないと思いますよ。(そもそも、Strutsで送られた値を処理するなら、<input>タグは使うことはないはずでは?) どちらも、フォームの内容がサーバに送信されているのは確かですから、やりようによっては方法はあると思います(Strutsを離れ、HttpRequestから直接値を受けて処理するようなことを考えれば)。ただ、「Strutsの機能でできるか」というと、これはちょっと違いますよね。
お礼
お礼の欄から失礼します。こういうコードはjava jspには存在しないんですよね? 「CausesValidation」 http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpref/html/frlrfSystemWindowsFormsControlClassCausesValidationTopic.asp
補足
疑問1について javaScript と validationを使ってポップアップ表示に変更しましたが、やはりa b c どのボタンでも同じ検証が行われてしまいます・・。Strutsを使って検証するのは無理なのでしょうか・・。 確かにjavaScriptのみでチェックさせれば楽なのでしょうけど・・。あえて・・validationを使って・・・したいです。