Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在jsp模板中大于日期_Java_Jsp - Fatal编程技术网

Java 在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

我在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")) { %>
<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.../>
<% } %>