我正在使用PrimeFaces,一个layoutUnit
内的组件必须更新另一个layoutUnit
内的组件:
<p:layout>
<p:layoutUnit position="west" size="275" resizable="true" closable="true" collapsible="true">
<h:form id="formWest">
<div id="west">
<ui:insert name="west"></ui:insert>
</div>
</h:form>
</p:layoutUnit>
<p:layoutUnit id="layout_center" position="center">
<h:form id="formCenter">
<div id="content">
<ui:insert name="content"></ui:insert>
</div>
</h:form>
</p:layoutUnit>
</p:layout>
错误消息为:Caused by: javax.faces.FacesException: Cannot find component with expression "formWest:execucao" referenced from "formCenter:form:mapaGoogle".
需要更新的组件位于td
内,所以我做了<td jsf:id="execucao">
,例如。
答案 0 :(得分:16)
如您所知,当您从其他表单引用组件时,您必须将表单ID附加到组件ID。
当您以不同的形式引用组件时,您还需要知道必须在表单ID之前附加另一个:
。
示例:
<h:form id="form1">
<p:inputText id="input1" />
</h:form>
现在,如果我想从另一种形式更新input1
,我必须使用:
:form1:input1
示例:
<h:form id="form2">
<p:commandButton update=":form1:input1" />
</h:form>
在您的情况下使用:
:formWest:execucao