Вы можете использовать <c:set>
для этого:
<c:set var="myVar" value="#{myBean.data.something.very.long}" scope="request" />
Это выражение EL будет затем оценено один раз и сохранено в области запроса. Обратите внимание, что это работает только тогда, когда значение доступно во время просмотра времени сборки . Если это не так, вам нужно удалить атрибут scope
, чтобы он стал истинным псевдонимом:
<c:set var="myVar" value="#{myBean.data.something.very.long}" />
Обратите внимание, что этот не кэширует оцененное значение в области запроса! Он будет пересматриваться каждый раз.
Не НЕ использовать <ui:param>
. Когда не используется для передачи параметра в template
, как определено в <ui:composition>
или <ui:decorate>
, и, таким образом, по существу злоупотребляет им, то поведение не определено, и фактически это будет ошибка в реализации JSF. использовал, если бы это было возможно. На это никогда не следует полагаться. Смотрите также JSTL в JSF2 Facelets ... имеет смысл?