7

我这里有一些代码:

<f:view>
    <h:form id="formA">
        <p:treeTable id="tree">
            <p:ajax event="select" listener="..." update="mustRefresh" />  
            ...
        </p:treeTable>
    </h:form>
    <h:form id="formB">
        <p:panel id="mustRefresh"> ... </p:panel>

    </h:form>   
</f:view>

当用户在 treeTable(formA) 上选择一条记录时,它的详细信息将显示在 formB 上并准备好进行编辑。我的麻烦是 update="mustRefresh" 不起作用,它会抛出这样的异常:

javax.faces.FacesException: Cannot find component with identifier "mustRefresh" referenced from "A4578:formA:tree". 

我尝试使用@form、formB、:formB 和:mustRefresh,但它不起作用。

4

2 回答 2

24

由于mustRefresh在组件层次结构中,formB您应该使用以下方式引用它:

<p:ajax event="select" listener="..." update=":formB:mustRefresh" />

看看UIComponentBase.findComponent是如何工作的。

于 2013-01-09T06:28:27.423 回答
17

使用update="@([id$=mustRefresh])"-- 这将直接选择 displayPost。无需将其映射到任何东西。

于 2015-06-10T00:59:05.583 回答