Вложенное выражение в JSP / JSTL - PullRequest
8 голосов
/ 28 июля 2010

Я использую JSP для представления и Spring MVC 3.0 для контроллера.В моем JSP я хочу показать текущий DateTime, для которого у меня есть следующий код ...

<c:set var="dateTimeDisplayFormat" value='<spring:message code="display.dateFormat" />'/>

<c:set var="currentDateTime" 
    value='<%= new SimpleDateFormat(${dateTimeDisplayFormat}).format(new Date()) %>' 
    scope="page" />

Теперь проблема в том, что JSTL не может распознать мой вложенный тег для создания экземпляра SimpleDateFormat.Я хочу передать строку формата (полученную из переменной 'dateTimeDisplayFormat') в конструктор SimpleDateFormat.

Может кто-нибудь подсказать, как мне написать вложенный конструктор для SimpleDateFormat в приведенном выше операторе c: set?1006 *

Спасибо в ожидании!

1 Ответ

16 голосов
/ 28 июля 2010

<c:set> может принимать свое значение из содержимого тега, а не из атрибута value:

<c:set var="dateTimeDisplayFormat">
    <spring:message code="display.dateFormat" />
</c:set>

<c:set var="currentDateTime" scope="page">
    <%= new SimpleDateFormat(${dateTimeDisplayFormat}).format(new Date()) %>
</c:set>    

Еще лучше, вам вообще не нужно <c:set>, поскольку и <spring:message>, и <fmt:formatDate> могут хранить свои результаты в переменных для вас:

<spring:message code="display.dateFormat" var="dateTimeDisplayFormat"/>
<fmt:formatDate pattern="${dateTimeDisplayFormat}" var="currentDateTime" scope="page"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...