JSTL, и даты сравнения
Я видел некоторые сообщения о сравнении дат в JSTL, но я все еще не могу заставить его работать.
У меня есть поле даты, которое я хочу проверить, после 01-01-1970.
<c:if test="${user.BirthDate > whatGoesHere}">
<doSomeLogic/>
</c:if>
}
может быть, следует использовать Боб ?
спасибо !
5 ответов
просто использовать <fmt:formatDate>
чтобы извлечь год из него, чтобы вы могли сделать математику на нем.
<fmt:formatDate value="${user.birthDate}" pattern="yyyy" var="userBirthYear" />
<c:if test="${userBirthYear le 1970}">
<doSomeLogic/>
</c:if>
вы также можете добавить логический геттер к вам bean:
public boolean isBirthDateAfter1970(){
return birthDate.after(dateOf1970);
}
таким образом, вы можете использовать следующий EL:
<c:if test="${user.birthDateAfter1970}">
You were born after the sixties.
</c:if>
U может использовать jstl и usebean что-то вроде этого
<jsp:useBean id="now" class="java.util.Date"/>
<c:if test="${someEvent.startDate lt now}">
It's history!</c:if>
<c:if test="${date1.time > date2.time}">...</c:if>
или lt
,=
,gt
:
<c:if test="${date1.time gt date2.time}">...</c:if>
мы эксплуатируем Long getTime()
метод java.util.Date
.
вы можете использовать (устаревшие) методы getYear()
, getMonth()
, etc.
<c:if test="${user.BirthDate.year > 99}">
<doSomeLogic/>
</c:if>
отметим, что getYear()
возвращает номер года - 1900.