- PR -

《Struts》必須チェックについて

1
投稿者投稿内容
まな
常連さん
会議室デビュー日: 2005/10/26
投稿数: 45
投稿日時: 2006-06-14 10:01
《Struts》必須チェックについて
日付、名前、番号を入力し、条件に合ったデータを検索する
画面で、日付、名前、番号の中でどれか1つだけ入力していれば
検索できるようにしたいです。
validation.xmlは以下のようになっています。
以下のようだと、全部必須になります。
<!-- 日付 ymd 必須、日付 -->
<field property="ymd" depends="required, date">
<arg position="0" key="日付" resource="false" />
<var>
<var-name>datePatternStrict</var-name>
<var-value>yyyyMMdd</var-value>
</var>
<msg name="required" key="I01001" />
<msg name="date" key="I01027" />
</field>
<!-- 名前 name 必須 -->
<field property="name" depends="required">
<arg position="0" key="名前" resource="false" />
<msg name="required" key="I01001" />
</field>
<!-- 番号 no 必須 -->
<field property="no" depends="required">
<arg position="0" key="番号" resource="false" />
<msg name="required" key="I01001" />
</field>
validation.xmlでどれか1つだけ入力していれば検索するという設定はできるのでしょうか?
それともjspでJavaScriptを作って設定するのでしょうか?
ハツキタツミ
大ベテラン
会議室デビュー日: 2005/05/24
投稿数: 108
投稿日時: 2006-06-14 11:42
引用:

まなさんの書き込み (2006-06-14 10:01) より:
validation.xmlでどれか1つだけ入力していれば検索するという設定はできるのでしょうか?


おそらく無理では。
requiredifあたりを調べてみましょう。

[ メッセージ編集済み 編集者: ハツキタツミ 編集日時 2006-06-14 11:42 ]
まな
常連さん
会議室デビュー日: 2005/10/26
投稿数: 45
投稿日時: 2006-06-14 11:58
下記のように書いてみましたが、うまくいきません。
3つともNULLのときにエラーメッセージを出すことができません。
やはりrequiredifでも無理なのでしょうか。
<!-- 日付 ymd 必須、日付 -->
<field property="ymd" depends="requiredif, date">
<arg position="0" key="日付" resource="false" />
<var>
<var-name>datePatternStrict</var-name>
<var-value>yyyyMMdd</var-value>
</var>
<var>
<var-name>field[1]</var-name>
<var-value>name</var-value>
</var>
<var>
<var-name>fieldTest[1]</var-name>
<var-value>NULL</var-value>
</var>
<var>
<var-name>field[2]</var-name>
<var-value>no</var-value>
</var>
<var>
<var-name>fieldTest[2]</var-name>
<var-value>NULL</var-value>
</var>
<msg name="requiredif" key="I01001" />
<msg name="date" key="I01027" />
</field>
<!-- 名前 name 必須 -->
<field property="name" depends="requiredif">
<arg position="0" key="名前" resource="false" />
<var>
<var-name>field[0]</var-name>
<var-value>ymd</var-value>
</var>
<var>
<var-name>fieldTest[0]</var-name>
<var-value>NULL</var-value>
</var>
<var>
<var-name>field[2]</var-name>
<var-value>no</var-value>
</var>
<var>
<var-name>fieldTest[2]</var-name>
<var-value>NULL</var-value>
</var>
<msg name="requiredif" key="I01001" />
</field>
<!-- 番号 no 必須 -->
<field property="no" depends="requiredif">
<arg position="0" key="番号" resource="false" />
<var>
<var-name>field[0]</var-name>
<var-value>ymd</var-value>
</var>
<var>
<var-name>fieldTest[0]</var-name>
<var-value>NULL</var-value>
</var>
<var>
<var-name>field[1]</var-name>
<var-value>name</var-value>
</var>
<var>
<var-name>fieldTest[1]</var-name>
<var-value>NULL</var-value>
</var>
<msg name="requiredif" key="I01001" />
</field>
まな
常連さん
会議室デビュー日: 2005/10/26
投稿数: 45
投稿日時: 2006-06-16 11:40
すみません。javascriptで解決しました。
アドバイスありがとうございました
Java僧
ぬし
会議室デビュー日: 2003/11/06
投稿数: 261
投稿日時: 2006-06-18 10:03
validwhenについてstrutsのドキュメントを調べてみてください。
orやandも表現できますよ。(括弧で括る必要があることに注意)
1

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