- PR -

validatorを使った複数の部品に対するチェック

1
投稿者投稿内容
すひろ
大ベテラン
会議室デビュー日: 2006/10/17
投稿数: 124
お住まい・勤務地: 愛知県
投稿日時: 2006-10-28 21:59
[環境]
eclipse 3.2
Struts 1.2.9
Tomcat 5.0.2.8
JDK 1.4.2

validatorで2つのテキストエリアの片方にしか画面から入力されなかったときに
エラーメッセージを出力するようにしています。

そこで、エラー時に両方のテキストエリアの背景色を変えたいのですが、
1回のvalidwhenチェックで両方ともを変える方法がわからず、
仕方なく下記ソースのように2回validwhenチェックを実行させることで対処しています。

1回のvalidwhenチェックで、複数のテキストエリアの背景色を変えることはできないでしょうか。


また、「depends="required, integer, maxlength"」のように1つの部品に対して
複数のvalidatorを設定している状態で、仮に全てのチェックに引っかかった場合、
普通は優先順位の高いエラー1つだけのメッセージが画面に表示されますが、
全てのメッセージを表示させることはできますでしょうか。
<field property="StartNen" depends="required">
<field property="StartNen" depends="integer">
<field property="StartNen" depends="maxlength">
と書けばできることはできるのですが、冗長になってしまうので…。


よろしくお願いいたします。

【validation.xml】
<form name="ActionForm">
<field property="juusyoKanji" depends="validwhen">
<msg name="validwhen" key="errors.validwhen" />
<arg0 key="住所(漢字)" resource="false" />
<arg1 key="住所(カナ)" resource="false" />
<var>
<var-name>test</var-name>
<var-value>
((juusyoKana == null) or (*this* != null))
</var-value>
</var>
</field>

<field property="juusyoKana" depends="validwhen">
<msg name="validwhen" key="errors.validwhen" />
<arg0 key="住所(カナ)" resource="false" />
<arg1 key="住所(漢字)" resource="false" />
<var>
<var-name>test</var-name>
<var-value>
((juusyoKanji == null) or (*this* != null))
</var-value>
</var>
</field>

<field property="StartNen" depends="required, integer, maxlength">
〜省略
</form>

【JSP】
<tr><td colspan="1" bgcolor="silver">
住所(漢字)
</td><td colspan="1">
<html:text property="juusyoKanji" errorStyle="background-color:red"/>
</td><td colspan="1" bgcolor="silver">
住所(カナ)
</td><td colspan="1">
<html:text property="juusyoKana" errorStyle="background-color:red"/>
</td></tr>

〜中略〜

<%-- エラーメッセージ出力 --%>
<html:errors />
1

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