2011-12-31 210 views
0

在我的應用程序,我使用Struts 2Struts 2的「如果」標籤

在一個頁面上,我想使用Struts 2 <s:if>標籤,但不能讓它開始工作。

在行動中,我向視圖展示了一個「人物」實體。

然後在頁面中,我想比較當前日期和人的生日。

我嘗試這樣做:

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

但它不工作。

如何解決?

+0

'person.brithday'的數據類型是什麼? – 2011-12-31 07:22:31

回答

3

我相信,你正在使用Dateperson.brithday數據類型,方式如下

如果你可以改變/修改你的行動增加新的java.util.Date()的行動。你可以做到這一點作爲一個新領域。

另外使用java.util.Date()是不好的做法,因爲在所有的大部分方法已過時,所以我建議你使用java.util.Calendar這是更靈活。

您可以使用Date.equals(), Date.before() and Date.after()比較2 dates.All你需要做的事情如下

<s:if test="%{person.brithday.before(currentdate)}"> 
    inside If block 
</s:if> 
<s:else> 
    else block 
</s:else> 

我在哪裏假設currentDate在你的Action類被設置,但如果你想將其更改爲只有在jsp頁面中使用它才能更改它。

+2

IMO如果當前日期沒有在頁面的其他地方使用,最好在操作中設置一個「isBirthday」標誌並公開該標誌;更容易測試,並保持計算的視野。 – 2011-12-31 14:45:38

+0

是的同意!!!從來沒有來到我心中感謝這個建議:) – 2011-12-31 14:49:11