Я обновляю проект с JSF1.2 / Facelets1.1 до JSF2.1 со встроенными фейслетами. Следующее больше не работает, и я не знаю почему. Оба ui: фрагменты, по-видимому, оцениваются как true, и версия ссылки, и версия в виде простого текста отображаются:
<ui:fragment rendered="#{rootcauseid ne rc.id}">
<a href="#{request.contextPath}/viewrootcause.jsf?rootcausenum=#{rc.id}">Root Cause #{rcRowCounter + 1}</a>
</ui:fragment>
<ui:fragment rendered="#{rootcauseid eq rc.id}">
<h:outputText value="Root Cause #{rcRowCounter + 1}"/>
</ui:fragment>
Следующее работает, поэтому у меня есть правильный обходной путь.
<h:panelGroup rendered="#{rootcauseid ne rc.id}">
<a href="#{request.contextPath}/viewrootcause.jsf?rootcausenum=#{rc.id}">Root Cause #{rcRowCounter + 1}</a>
</h:panelGroup>
<h:outputText value="Root Cause #{rcRowCounter + 1}"
rendered="#{rootcauseid eq rc.id}"/>
Но почему не работает версия ui: фрагмент? Что изменилось в Facelets и JSF, что могло бы изменить ситуацию? "Ui: фрагмент визуализирован = '...'" больше не является допустимой идиомой?