h:尽管render =“false”,也会调用dataTable getter

时间:2014-09-03 09:05:07

标签: jsf jsf-2.2

我有dataTable,它的getter在不应该被调用时被调用。我们正在使用带有CDI的JSF 2.2.6。

这是xthml文件中的部分:

<h:panelGroup rendered="false">
    <h:dataTable id="someObjectTable" border="0" width="900"
        value="#{SomeController.someObjects}"
        rowClasses="odd, even" var="value" columnClasses="formLeft, formRight"
        listHeight="">

    </h:dataTable>
</h:panelGroup>

这就是豆子:

public List<SomeObject> getSomeObjects(){
    //... ... ...
    return resutList;
}

即使dataTable周围的panelGroup将其渲染设置为false,也会调用getSomeObjects。这是为什么?是否真的会被调用,即使它不会被渲染?

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案但是有点棘手。

尝试使用jstl标记

<c:if test="#{renderCondition}">
    <h:dataTable id="someObjectTable" border="0" width="900"
        value="#{SomeController.someObjects}"
        rowClasses="odd, even" var="value" columnClasses="formLeft,formRight"
    listHeight="">
    </h:dataTable>
</c:if>