我不知道我是否走上正轨还是没有问过这个问题。
我的JSF项目我有这种树结构:
<p:tree id="resourcesTree" value="#{someBean.root}" var="node" selectionMode="single" styleClass="no-border"
selection="#{someBean.selectedNode}" dynamic="true">
<p:ajax listener="#{someBean.onNodeSelect}" update=":centerPanel :tableForm :tabForm" event="select" onstart="statusDialog.show();"
oncomplete="statusDialog.hide();" />
<p:treeNode id="resourcesTreeNode" >
<h:outputText value="#{node}" id="lblNode" />
</p:treeNode>
</p:tree>
我必须在添加内容或删除某些内容后更新此树..但每当我更新它时,它的嵌套更新也会调用我的意思是说它还调用更新这些组件“:centerPanel:tableForm:tabForm”..
这给我一个错误:在视图中找不到tableForm,因为这在我的中央面板中形成了加载,而这个树在我的右侧面板中。所以当我在树上做一些操作时,并不总是这样:tableForm在我的中心小组..(我的意思是设计只是这样)
所以现在我的问题是,我可以放一些条件或者有任何方法,以便我可以指定何时更新嵌套组件,何时不... ....在坚果shell中有任何方法只更新:resoucesTree是这样一种方式,不会调用嵌套更新,以便我可以避免错误......
提前致谢。
答案 0 :(得分:1)
您可以在update
属性中使用EL。
update=":centerPanel :tabForm #{hasTableForm ? ':tableForm' : ''}"
fictive #{hasTableForm}
返回一个布尔值。
但如果:tableForm
已经在:centerPanel
内,您可以省略它。
update=":centerPanel :tabForm"