我在这里有一些代码:
<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但它不起作用。
答案 0 :(得分:22)
由于组件层次结构中的mustRefresh
位于formB
内,您应该引用它:
<p:ajax event="select" listener="..." update=":formB:mustRefresh" />
了解UIComponentBase.findComponent的工作原理。
答案 1 :(得分:10)
使用update="@([id$=mustRefresh])"
- 这将直接获取displayPost。没有必要将它映射到任何东西。