クライアントのリストと 1 つの Edit commandLink 列を含むこの dataTable があります。クライアントのデータを表示するためにダイアログを開く必要があり、dataTable の行に使用される変数cliを使用して、f:setPropertyActionListener を使用して Client オブジェクトを Bean ダイアログに送信しようとしています。
<p:dataTable id="tblClients" var="cli" value="#{clientsBean.clients}" rowKey="#{cli.id}">
<p:column>
<p:commandLink id="lnkEdit" value="Edit" action="#{clientBean.start}" process="@this" update="dlgClient" oncomplete="dialogClient.show()">
<f:setPropertyActionListener target="#{clientBean.client}" value="#{cli}" />
</p:commandLink>
</p:column>
<p:column headerText="Name" sortBy="#{cli.name}" id="name">
#{cli.name}
</p:column>
...
</p:dataTable>
しかし、編集ボタンを押すと、次のエラーがスローされます。
java.lang.IllegalArgumentException: クラス java.lang.String 型の test.Client@95 をクラス test.Client に変換できません
clientBean.client はクライアント型であり、そのゲッターとセッターは正しいと確信しています。
何らかの方法で dataTable 変数を参照することは可能ですか? このタスクを達成するためにコンバーターを実装する必要がありますか?
私が感謝する助け、ありがとう。