在我的应用程序,我使用Struts 2Struts 2的“如果”标签
在一个页面上,我想使用Struts 2 <s:if>
标签,但不能让它开始工作。
在行动中,我向视图展示了一个“人物”实体。
然后在页面中,我想比较当前日期和人的生日。
我尝试这样做:
<s:if test="person.birthday > new java.util.Date()">xxxx</s:if>
但它不工作。
如何解决?
在我的应用程序,我使用Struts 2Struts 2的“如果”标签
在一个页面上,我想使用Struts 2 <s:if>
标签,但不能让它开始工作。
在行动中,我向视图展示了一个“人物”实体。
然后在页面中,我想比较当前日期和人的生日。
我尝试这样做:
<s:if test="person.birthday > new java.util.Date()">xxxx</s:if>
但它不工作。
如何解决?
我相信,你正在使用Date
为person.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页面中使用它才能更改它。
IMO如果当前日期没有在页面的其他地方使用,最好在操作中设置一个“isBirthday”标志并公开该标志;更容易测试,并保持计算的视野。 – 2011-12-31 14:45:38
是的同意!!!从来没有来到我心中感谢这个建议:) – 2011-12-31 14:49:11
'person.brithday'的数据类型是什么? – 2011-12-31 07:22:31