4

リスト項目とp:commandLink内部のメニューがあります。p:dataTableこれをさまざまなページに使用しているときに、フォームとp:columns内部でフォームを更新する際に問題があることに気付きました。リンクをクリックすると、form2実際にはいくつかのパネルがあり、内部のテーブルが更新されます。今私の問題:ほとんどのコンテンツ のみform2が正しく更新されp:columnsますが、古い値があります。リンクをもう一度クリックすると、正しい値が表示されます。

Bean メソッドpublic void selectProject(Project myProject)が正しく呼び出され、値が正しく処理されます。

ここで奇妙なことに、 a を a に追加するh:graphicImageと、p:ajaxすべて正常に動作します!!

<h:form id="form1">
  ...
  <li>
    <p:commandLink update=":form2" actionListener="#{bean.selectProject(p)}">  
      <h:outputText value="#{p.name}" />
    </p:commandLink>
    <!-- Code below is for testing only, but works fine! -->
    <h:graphicImage value="#{iconBean.icon(12,'clock')}">
      <p:ajax event="click" update=":form2" listener="#{bean.selectProject(p)}"/>
    </h:graphicImage>
  </li>
  ...
</h:form>

更新これは とは関係がないようです。p:columns簡略化されたテスト ケースは の予想される動作を示していますp:commandLink。元の (まだ失敗している) 設定では、メニューは複合コンポーネントとして実装されています。

4

1 に答える 1

3

私が使用する回避策として

<h:commandLink>
  <h:outputText value="#{p.name}"/>
  <p:ajax event="click" update=":form2" listener="#{bean.selectProject(p)}"/>
</h:commandLink>
于 2012-10-29T16:42:29.290 に答える