2011-12-31 5 views
0

は、私は1つのページではStrutsの2のStruts 2私のアプリケーションでタグ

を使用し、私は、Struts 2 <s:if>タグを使用したいが、それは仕事を得ることができない「場合」。

アクションでは、ビューに「person」エンティティが公開されます。

このページでは、現在の日付とその人の誕生日を比較したいと思います。

<s:if test="person.birthday > new java.util.Date()">xxxx</s:if> 

しかし、それは動作しません:

は、私はこれを試してみました。

修正方法?

+0

'person.brithday'のデータ型は何ですか? –

答えて

3

私は次のようにあなたがアクションに)あなたのアクションは、新しいjava.util.Dateを(追加、変更/変更することができる場合。あなたが道

それを行うことができますが、person.brithdayのデータ型としてDateを使用していることを信じています新しい分野としてさらにjava.util.Date()を使用して

その方法のほとんどは、私はあなたがより柔軟であるjava.util.Calendarを使用することをお勧めので、廃止されましたので、全然良い習慣ではありません。

あなたは

私は currentDateあなたのActionクラスに設定されていることを想定していますが、あなたがそれを変更したい場合は
<s:if test="%{person.brithday.before(currentdate)}"> 
    inside If block 
</s:if> 
<s:else> 
    else block 
</s:else> 

を次のように何かをする必要があり2 dates.Allを比較するDate.equals(), Date.before() and Date.after()を使用することができますjspページでのみ使用すると変更できます。

+2

IMO現在の日付がページの他の場所で使用されていない場合は、アクションに「isBirthday」フラグを設定して公開する方が良いでしょう。テストするのが簡単で、計算をビューから外します。 –

+0

はい同意!!!この提案のために私の心に感謝したことはありません:) –

関連する問題