私はここにいくつかのコードを持っています:
<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で試しましたが、機能しません。
コンポーネント階層のmustRefresh
はformB
内にあるため、次のように参照する必要があります。
<p:ajax event="select" listener="..." update=":formB:mustRefresh" />
IComponentBase.findComponent のしくみをご覧ください。
update="@([id$=mustRefresh])"
を使用します-これはdisplayPostを直接取得します。それを何かにマッピングする必要はありません。