我有这个数据表,其中包含一个客户列表和一个 Edit commandLink 列。我需要打开一个对话框来显示客户端的数据,并且我正在尝试使用 f:setPropertyActionListener 将 Client 对象发送到 bean 对话框,使用用于 dataTable 行的变量cli :
<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 是 Client 类型,它的 getter 和 setter 是正确的。
是否可以以任何方式引用 dataTable 变量?我需要实现一个转换器来完成这个任务吗?
任何帮助我将不胜感激,谢谢。