Есть ли функция eval для JSP EL? - PullRequest
5 голосов
/ 22 апреля 2011

Я ищу способ оценить строку как el, когда она выводится на странице JSP. (Я думаю, когда это метод toString () вызывается изнутри ???)

Например, на моей странице, если я сделаю это:

<title>${bean.title}</title>

title будет свойством bean-компонента, который будет возвращать строку. Я хотел бы хранить другие выражения EL в bean.title, чтобы они оценивались.

Итак, если bean.title = "This is the ${param.pageType} page", очевидно, что это будет оценено до того, как оно будет записано на страницу.

Есть ли способ сделать это?

1 Ответ

3 голосов
/ 22 апреля 2011

Вы на самом деле ищете решение в неправильном направлении.Для этого вы должны использовать JSTL fmt taglib .Он также поддерживает параметризованные сообщения.Вам следует только изменить свой код, чтобы хранить сообщения в (* интернационализируемом) файле .properties, а не в bean-компоненте.

Предполагая, что в файле text.properties, который находится вcom.example.i18n пакет

title = This is the {0} page

тогда вы можете использовать его следующим образом

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:setBundle basename="com.example.i18n.text" />
...
<title>
    <fmt:message key="title">
        <fmt:param value="${param.pageType}" />
    </fmt:message>
</title>

Он придерживается правил MessageFormat API .

См. Также:

...