Эквивалентно тегу Struts 1.x «bean: define»? - PullRequest
2 голосов
/ 14 июля 2010

Я работаю над преобразованием старого приложения Struts 1.x в Spring MVC, и на некоторых страницах JSP тег bean:define используется для получения строки из пакета ресурсов, а затем используется позже встраница:

<bean:define id="example_title"><fmt:message bundle="${example_Labels}" key="example_field"/></bean:define>

затем позже:

title="<%=example_title%>"

Я не уверен, что должен быть эквивалентный тег JSTL (или даже если это должен быть JSTL), чтобы отменитьс тегом Struts, кто-нибудь может предложить предложение?Я пытался поиграть с JSTL set и jsp:useBean, но либо они неверны, либо я неправильно их реализую.

Спасибо за любые предложения!

Ответы [ 2 ]

2 голосов
/ 14 июля 2010

Используйте атрибут var fmt:message.

<fmt:message bundle="${example_Labels}" key="example_field" var="example_title" />

Это в основном экспортирует значение, связанное с ключом, в переменную области страницы с именем example_title. Вы можете распечатать его позже на странице обычным способом EL:

title="${example_title}"

Или, если вы все еще используете pre-JSP-2.0, где EL в тексте шаблона не поддерживается (рассмотрите возможность обновления ..), тогда используйте <c:out>, чтобы отобразить его:

title="<c:out value="${example_title}" />"
1 голос
/ 14 июля 2010

Вы можете получить доступ к определенному бину, используя нотацию $ {}

<%
  title = ${example_title}
%>

Если вы хотите напечатать его, вы можете использовать тег <c:out>

<c:out value=${example_title}/>

Вот краткая ссылка на JSTL

...