我正在使用内置的facelets将项目从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:fragment版本不起作用?有关Facelets和JSF的改变会有什么影响? “ui:fragment rendered ='...'”不再是一个有效的习语吗?
答案 0 :(得分:-1)
根据规范,ui:fragment只有id和binding属性。