問題は "p:ajax event="rowDblselect" listener="#{companyBean.update()}" ... " で、初めてダブルクリックすると、メソッド "update()" が 1 回呼び出されます (パーフェクト!)、しかし、その後、コマンドボタン「button1」を押して、コンポーネントを再度ダブルクリックすると、「update()」が2回呼び出されます。もう一度繰り返すと、「update()」が 3 回呼び出されます ... ... ... ... これは非常に奇妙です !! コマンドボタンでデータテーブルを更新すると、ajaxイベントがアップグレードを保持すると思います。わかりません(?) ... 誰かが解決するのを手伝ってくれませんか??
<h:panelGrid id="panel" columns="5">
<p:commandButton id="button1" value="Search" actionListener="#{
companyBean.search()}" update="dataTable"/>
</h:panelGrid>
<p:dataTable id="dataTable" var="companyTO" value="#{companyBean.companiesTO}"
selection="#companyBean.selectedCompanyTO}" rowKey="#{companyTO}"
emptyMessage="" selectionMode="single" >
<p:ajax event="rowDblselect" listener="#{companyBean.update()}" immediate="true"
process="@this" />
<p:column >
...
<p:dataTable>
obs .: 「update="dataTable" を削除すると、"event="rowDblselect"」が完全に機能し、メソッドを 1 回だけ呼び出します。したがって、問題は更新にあります。
ここで同じ問題を見つけました: https://stackoverflow.com/questions/11904556/updating-datatable-with-own-datamodel-calls-method-more-and-more