2013-10-10 35 views
0

我有一個jsp表單模板大於迄今在JSP模板

<% if (forms.getFlDate().equals("10/17/05")) { %> 
<jsp:getProperty name="forms" property="flDate" /><br /> 
<% } %> 

然而這種說法,我需要測試比(「05年10月17日」)日期更大。

我已經試過

<% if (forms.getFlDate().gt("10/17/05")) { %> 
<jsp:getProperty name="forms" property="flDate" /><br /> 
<% } %> 

,但它不會工作。這並不是我的本事,有點被推入。

+0

請記住scriptlets('<% ... %>')和JSP標記('')之間的區別。你不能在腳本中使用EL;相反,您在scriptlet中使用完整的Java代碼。所以真的這是一個關於Java如何比較日期的問題。 – UFL1138

+0

由於這是一個關於比較日期的Java問題,請參閱[Date API](http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Date.html#before(java .util.Date))。另外''.equals(「10/17/05」)調用總是返回false,因爲Date.equals(Object)只能在給定的Object是另一個Date對象的情況下返回true。 'String'不起作用。 – UFL1138

回答

0

你可以轉換「05年10月17日」至今對象首先使用SimpleDateFormat,然後比較使用<% if (forms.getFlDate().after(myDate)) { %>

<% 
    SimpleDateFormat fmt = new SimpleDateFormat("MM/dd/yy"); 
    java.util.Date myDate = fmt.parse("10/17/05"); 
    if (forms.getFlDate().after(myDate)) { 
     // your logic here 
    } 

%> 
0

如果你要使用這個「05年10月17日」不止有一次,在你的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的建議,以及使用SimpleDateFormat將String轉換爲Date對象。

** ** **使用十月份的常數,因爲日曆中的月份爲零。 Facepalm