JSF:避免嵌套更新调用

时间:2012-06-17 15:14:27

标签: jsf java-ee jsf-2 primefaces

我不知道我是否走上正轨还是没有问过这个问题。

我的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是这样一种方式,不会调用嵌套更新,以便我可以避免错误......

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以在update属性中使用EL。

update=":centerPanel :tabForm #{hasTableForm ? ':tableForm' : ''}"

fictive #{hasTableForm}返回一个布尔值。

但如果:tableForm已经在:centerPanel内,您可以省略它。

update=":centerPanel :tabForm"
相关问题