1

我不知道我是否走在正确的轨道上,或者还没有问这个问题。

我的 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 not found in view 因为这个表单加载在我的中央面板中,而这棵树在我的右侧面板中。所以当我在树上做一些操作时,它并不总是 :tableForm 在我的中央面板中..(我的意思是设计只是这样)

所以现在我的问题是我可以设置一些条件还是有任何方法可以指定何时更新嵌套组件以及何时不更新.... 简而言之,有什么方法可以仅更新:resoucesTree 就是这样不调用嵌套更新,这样我就可以避免错误......

提前致谢。

4

1 回答 1

1

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

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

虚构#{hasTableForm}返回布尔值的地方。

但是如果已经:tableForm在里面:centerPanel,你可以省略它。

update=":centerPanel :tabForm"
于 2012-06-18T18:59:45.703 回答