- PR -

strutsにおける複数のボタンが存在するフォーム上でのvalidateについて

1
投稿者投稿内容
R_E
会議室デビュー日: 2005/03/02
投稿数: 6
投稿日時: 2005-03-02 09:06
strutsを勉強し始めて2週間程の初心者です。
いろいろ調べましたが、どうしても答えにたどり着かないので、
どうぞよろしくお願い致します。

windows2000
j2sdk1.4.2
struts1.2.4
Tomcat5.0

サブミット・ボタンが複数個存在するWebフォーム上で、ボタンごとに違った検証をコントロールしたいと思っております。

--------validation.xml-------

<formset>
<form name="TestForm">
<field property="a" depends="required">
<arg key="TestForm.a" />
</field>
<field property="b" depends="required">
<arg key="TestForm.b" />
</field>
</form>
</formset>


--------Test.jsp-----

<html:form action="/Test">

<html:text property="a" size="10" /><br>
<html:text property="b" size="10" /><br>

<html:submit property="command">A</html:submit><br>
<html:submit property="command">B</html:submit><br>

</html:form>



上記のようなプログラムでは、[A]ボタンをクリックしても、項目[B]の検証コントロールも動作してしまいます。

[A]ボタンをクリックしたタイミングでは、項目[a]のみチェック。
[B]ボタンをクリックしたタイミングでは、項目[b]のみチェック。
というようなコントロールは実現できるのでしょうか?

説明下手ですが、どなたかアドバイス頂けないでしょうか?
よろしくお願い致します。

山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-03-02 11:14
Struts で OOTB で実現できるかどうかは存じませんが、Submit の onsubmit イベントで post 先の action を動的に変更させてしまうのはどうでしょう?
action が変われば別のバリデータを呼び出すことができると思います。
または validation.xml を使わず validate() メソッドを書くとか。

#もっと簡単なソリューションがあるかもしれませんが
すえぞう
会議室デビュー日: 2004/08/11
投稿数: 9
投稿日時: 2005-03-02 23:53
ValidatorActionFormかDynaValidatorActionFormを使用すれば、フォーム単位ではなくactionのパス単位でvalidationが利用できます。
R_E
会議室デビュー日: 2005/03/02
投稿数: 6
投稿日時: 2005-03-03 09:01
おはようございます。
すえぞう様、インギ様
ご返答ありがとうございます。

現在作成中のものには、
LookupDispatchActionを継承したActionクラスと
ValidatorFormを継承しているFormクラスを使用して作成しています。

ひとまず、ValidatorActionFormとDynaValidatorActionFormについて
調べてみたいと思います。


1

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