JSF 2.2 - ui内部的所有内容:重复评估,尽管渲染=" false"

时间:2014-06-06 12:21:40

标签: jsf jsf-2 richfaces facelets uirepeat

我目前正在将一个Web应用程序从JSF 1.2 / Richfaces 3.3.3迁移到JSF 2.2对于数据迭代,我们使用了来自Richfaces的a4j:repeat。我现在想将迭代器更改为ui:repeat,因为我们想抛出Richfaces。

但是,我遇到了一种非常奇怪的行为。想象一下像这样的代码片段(从原文中简化):

<ui:repeat id="criterions" var="criterion" value="#{AdvancedSearchBean.criterionList}">
    <h:panelGroup rendered="#{criterion.searchCriterion.displayType == 'PERSON'}">
        <h:inputText value="#{criterion.searchString}"/>
    </h:panelGroup>
</ui:repeat>

虽然渲染条件的计算结果肯定为false,但会评估panelGroup中的部分。如果我改变ui:重复到a4j:重复,它工作正常,不评估panelGroup内的部分。

对于我们的代码来说,这是一个真正的问题,因为&#34;标准&#34;变量可以包含不同的对象(扩展相同的超类)。在这种情况下,标准对象不包含名称为&#34; searchString&#34;的属性。 (因为它不属于#34; PERSON&#34;) - &gt;抛出错误。

任何人都可以解释这种行为或有解决方案吗? 我使用的是集成在WildFly 8.0.0.final中的JSF版本(Mojarra 2.2.5-jbossorg-3)

由于 马库斯

0 个答案:

没有答案