我有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。这是为什么?是否真的会被调用,即使它不会被渲染?
答案 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>