我一直在尝试呈现一个rich:dataTable,但在条件呈现方面失败了。我只想在列表大小大于零的情况下呈现它。
我使用的是JSF-2.0、RichFaces-4。
发布于 2013-07-29 21:46:02
您必须使用datatable的"render“属性。使用它,您可以定义是否将组件呈现给客户端。因此,如果列表已填充,请按EL进行检查。
你可以这样做:
rendered="#{not empty listObject}"一切都很好。我总是将我的数据库查询方法实现为从不返回null,如果查询没有结果,我将返回一个空列表。通过这种方式,我确信我永远不会得到nullpointerexception,因此我更喜欢显示一个空表。因为当您确定表始终存在时,布局页面会更容易。
希望这能有所帮助。
发布于 2013-07-30 00:33:51
场景是,我有一个右键单击的groupId。在上下文菜单上,我选择显示CTN,然后它将在数据表中呈现此组的所有CTN。它从一个JavaScript调用开始,一旦我选择了“显示CTN”,我就会调用它。它负责向a4j:jsFunction提供GroupId。
<rich:dataTable value="#{ctnGrpMgmtController.ctnDetailsList}"
var="ctnVar" id="ctnTable" rows="5"
rendered="#{not empty ctnDetailsList}">上面的代码应该在下面的a4j:jsFunction执行之后呈现。
<a4j:jsFunction name="selectGroupForManagingCtns"
action="#{ctnGrpMgmtController.loadCTNsForAGroup}"
render="ctnListPanel,ctnTable">
<a4j:param name="name"
assignTo="#{ctnGrpMgmtController.groupId}" />
</a4j:jsFunction>我必须执行F5才能看到组件"ctnTable",这就是问题的开始。
发布于 2013-07-31 17:37:39
看起来a4j:jsFunction上的属性名是reRender而不只是render。应该能修好它。
https://stackoverflow.com/questions/17925478
复制相似问题