Форматирование длинной временной метки в дату с помощью JSTL
Вопрос
Я извлекаю длинную временную метку из базы данных, но хочу представить ее как дату, используя только теги, без встроенной java в JSP.
Я создал свой собственный тег для этого, потому что мне не удалось заставить работать теги parseDate и formatDate, но это не значит, что они не работают.
Есть какой-нибудь совет?
Спасибо.
Решение
Теги parseDate и formatDate работают, но они работают с объектами Date.Вы можете вызвать new java.util.Date(longvalue), чтобы получить объект date, а затем передать его стандартному тегу.
где-нибудь еще, кроме jsp, создайте свой объект date.
long longvalue = ...;//from database.
java.util.Date dateValue = new java.util.Date(longvalue);
request.setAttribute("dateValue", dateValue);
поместите это в запрос, и затем вы сможете получить к нему доступ в своем теге следующим образом.
<fmt:formatDate value="${dateValue}" pattern="MM/dd/yyyy HH:mm"/>
Другие советы
Вы можете избежать необходимости вносить какие-либо изменения в свой сервлет, создав объект date в JSP с помощью jsp:useBean
и jsp:setProperty
теги для установки времени вновь созданного объекта date равным времени метки времени.Например:
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<jsp:useBean id="dateValue" class="java.util.Date"/>
<jsp:setProperty name="dateValue" property="time" value="${timestampValue}"/>
<fmt:formatDate value="${dateValue}" pattern="MM/dd/yyyy HH:mm"/>