ui:将Facelets升级到JSF 2后片段呈现的属性不起作用

时间:2011-10-15 04:02:16

标签: jsf jsf-2 facelets fragment

我正在使用内置的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 ='...'”不再是一个有效的习语吗?

1 个答案:

答案 0 :(得分:-1)

根据规范,ui:fragment只有id和binding属性。