jsf - "找不到带表达式的组件"

rsb*_*097 7 java jsf primefaces

我正在使用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>
Run Code Online (Sandbox Code Playgroud)

错误消息是: Caused by: javax.faces.FacesException: Cannot find component with expression "formWest:execucao" referenced from "formCenter:form:mapaGoogle".

例如,需要更新的组件在内部,td所以我做<td jsf:id="execucao">了.

Kis*_*ash 17

如您所知,当您从其他表单引用组件时,您必须将表单ID附加到组件ID.

:在以不同形式引用组件时,您还需要知道必须在表单ID之前附加另一个.

例:

<h:form id="form1">
    <p:inputText id="input1" />
</h:form>
Run Code Online (Sandbox Code Playgroud)

现在,如果我想更新input1另一个表单,我必须使用:

:form1:input1
Run Code Online (Sandbox Code Playgroud)

例:

<h:form id="form2">
   <p:commandButton update=":form1:input1" />
</h:form>
Run Code Online (Sandbox Code Playgroud)

在你的情况下使用:

:formWest:execucao
Run Code Online (Sandbox Code Playgroud)