Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ui:将Facelets升级到JSF 2后,片段呈现属性不起作用_Jsf_Jsf 2_Facelets_Fragment - Fatal编程技术网

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

ui:将Facelets升级到JSF 2后,片段呈现属性不起作用,jsf,jsf-2,facelets,fragment,Jsf,Jsf 2,Facelets,Fragment,我正在用内置的facelets将一个项目从JSF1.2/Facelets1.1升级到JSF2.1。以下内容不再有效,我不知道为什么。显然,两个ui:fragments的计算结果均为true,并且呈现链接版本和纯文本版本: <ui:fragment rendered="#{rootcauseid ne rc.id}"> <a href="#{request.contextPath}/viewrootcause.jsf?rootcausenum=#{rc.id}">R

我正在用内置的facelets将一个项目从JSF1.2/Facelets1.1升级到JSF2.1。以下内容不再有效,我不知道为什么。显然,两个ui:fragments的计算结果均为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='…'”不再是一个有效的习惯用法吗?

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

据我所知,它应该可以正常工作。尝试调试渲染结果的计算。如何为ui前缀声明命名空间?ui前缀定义为:xmlns:ui=”“这不是真的。这是一个纪录片错误。它一直存在于Facelets中,但自JSF2.1以来,它只在标记文档中被修复。另请参见具体问题是由JSF2.1中的
标记的生命周期的变化引起的,与Facelets 1.x和2.0.BalusC相反,这是一个非常好的信息。如果您在中有关于生命周期更改的更多信息,并将其作为答案发布,我将很高兴地“接受”该响应。