- PR -

validwhenとdate検証の組み合わせ

1
投稿者投稿内容
檜山
会議室デビュー日: 2006/04/13
投稿数: 15
投稿日時: 2007-01-25 01:59
Struts 1.2.9を使っていて日付期間を入力させたいフォームがあるのですが、その期間を一週間固定としたかったので以下のような画面レイアウトにしました。
コード:
<input type="radio" name="dateOpt" value="0">開始日指定
<input type="text" name="minDateStr">から一週間<br>
<input type="radio" name="dateOpt" value="1">終了日指定
<input type="text" name="maxDateStr">までの一週間


ここで「開始日指定」が選択されていれば内部的に開始日(minDateStr)を基準に一週間を計算するので開始日はdate検証が必要になりますが、終了日(maxDateStr)には何が入力されていても構わない(逆も同様)としたいのです。
date検証のためにvalidation.xmlに以下のような記述をしてみたのですが、これだと「開始日指定」であっても終了日までdate検証されてしまいます。
コード:
<form name="SampleForm">
  <field property="minDateStr" depends="validwhen,date">
    <arg key="sample.minDate"/>
    <var>
      <var-name>test</var-name>
      <var-value>((dateOpt == '1') or (*this* != null))</var-value>
    </var>
    <var>
      <var-name>datePatternStrict</var-name>
      <var-value>yyyy/MM/dd</var-value>
    </var>
  </field>
  <field property="maxDateStr" depends="validwhen,date">
    <arg key="sample.maxDate"/>
    <var>
      <var-name>test</var-name>
      <var-value>((dateOpt == '0') or (*this* != null))</var-value>
    </var>
    <var>
      <var-name>datePatternStrict</var-name>
      <var-value>yyyy/MM/dd</var-value>
    </var>
  </field>
</form>


validwhenで「*this* != null」ではなく、「*this*が日付と見なせる」と一度に指定できればよい気がするのですがどう記述すればよいのかわかりませんでした。
どなたかご存知でしたらよろしくお願いします。
1

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