从另一种形式更新面板的ajax

时间:2013-01-09 03:06:03

标签: java ajax jsf-2 primefaces panel

我在这里有一些代码:

<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但它不起作用。

2 个答案:

答案 0 :(得分:22)

由于组件层次结构中的mustRefresh位于formB内,您应该引用它:

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

了解UIComponentBase.findComponent的工作原理。

答案 1 :(得分:10)

使用update="@([id$=mustRefresh])" - 这将直接获取displayPost。没有必要将它映射到任何东西。