Я использовал c:set
в качестве псевдонима выражения. Сегодня я столкнулся с тем, что c:set
вычисляется каждый раз, когда var используется, а также при каждом "вызове" изменяется его выход - зависит от текущего контекста:
<!-- lets say composite has id "composite" -->
<ui:composition ...>
<cc:implementation>
<c:set var="compositeClientId" value="#{component.namingContainer.clientId}"/>
<!-- OUTPUTS "composite" -->
<h:outputText value="#{compositeClientId}"/>
<h:form id="form">
<!-- OUTPUTS "composite:form" -->
<h:outputText value="#{compositeClientId}"/>
</h:form>
<cc:implementation>
</ui:composition>
Есть ли способ, как оценить c:set
в месте объявления, чтобы в обоих случаях он вывел "составной"?