Форматирование длинной метки времени в дату с помощью JSTL

Я вытаскиваю длинную метку времени из базы данных, но хочу представить ее как Date, используя только теги, без встроенной java в JSP.

Я создал свой собственный тег, чтобы сделать это, потому что я не смог заставить теги parseDate и formatDate работать, но это не означает, что они не работают.

Любые советы?

Спасибо.

Ответы

Ответ 1

Теги parseDate и formatDate работают, но они работают с объектами Date. Вы можете вызвать новый java.util.Date(longvalue), чтобы получить объект даты, а затем передать его стандартным тегам.

где-то, кроме jsp, создайте свой объект даты.

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"/>

Ответ 2

Вы можете избежать необходимости вносить какие-либо изменения в свой сервлет, создав объект даты в JSP с помощью тегов jsp:useBean и jsp:setProperty, чтобы установить время вновь созданного объекта даты на отметку времени. Например:

<%@ 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"/>