Java 在jsp模板中大于日期
我在jsp表单模板中有这个语句Java 在jsp模板中大于日期,java,jsp,Java,Jsp,我在jsp表单模板中有这个语句 <% if (forms.getFlDate().equals("10/17/05")) { %> <jsp:getProperty name="forms" property="flDate" /><br /> <% } %> 但是,我需要测试一个大于(“10/17/05”)的日期 我试过了 <% if (forms.getFlDate().gt("10/17/05")) { %> <js
<% if (forms.getFlDate().equals("10/17/05")) { %>
<jsp:getProperty name="forms" property="flDate" /><br />
<% } %>
但是,我需要测试一个大于(“10/17/05”)的日期
我试过了
<% if (forms.getFlDate().gt("10/17/05")) { %>
<jsp:getProperty name="forms" property="flDate" /><br />
<% } %>
但这是行不通的。这可不是我的强项,有点勉强。您可以先使用SimpleDataFormat
将“10/17/05”转换为date对象,然后比较使用
如果要多次使用此“10/17/05”,请在JSP的前面引入一个变量:
<% Calendar earlyDate = Calendar.getInstance();
earlyDate.set(2005, Calendar.OCTOBER, 17, 0, 0, 0); // ** ** **
Date earliest = earlyDate.getTime();
%>
然后后来
<% if(forms.getFlDate().after(earliest)){ %>
<jsp:doSomethingHere.../>
<% } %>
请注意,这假定flDate字段声明为日期而不是字符串。如果不是,您也应该遵循@S4beR的建议,使用SimpleDataFormat将字符串转换为日期对象
******使用十月的常量,因为日历中的月份是以零为基础的。Facepalm请记住scriptlet(
)和JSP标记(
)之间的区别。不能在Scriptlet内部使用EL;而是在scriptlet中使用完整的Java代码。这实际上是一个关于Java如何比较日期的问题。另外,.equals(“10/17/05”)
调用将始终返回false
,因为Date.equals(Object)
只能在给定的对象是另一个日期对象时返回true。字符串
将不起作用。
<% if(forms.getFlDate().after(earliest)){ %>
<jsp:doSomethingHere.../>
<% } %>