web-dev-qa-db-ja.com

jsf-"式を持つコンポーネントが見つかりません"

PrimeFacesを使用していて、1つの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">、 例えば。

7
rsb2097

ご存知のように、別のフォームからコンポーネントを参照するときは、フォーム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
17
Kishor Prakash