【发布时间】:2017-01-01 18:52:53
【问题描述】:
我有一个应该重定向到项目视图页面的 ajax 侦听器。 但是,由于我使用泛型类型作为模型,我想在我的公共数据表控制器中另外指定带有第二个参数的视图是什么。
不幸的是,您可以在两种侦听器方法之间进行选择,一种使用 event 参数来帮助识别对象,而第二种方法使您有机会发送 free param 但缺少事件.
模板:
<p:dataTable value="#{aObj.objList}" var="item" ... selectionMode="single">
<p:ajax event="rowSelect" listener="#{aObj.viewItem}" />
<p:ajax event="rowSelect" listener="#{aObj.viewItem('myItemView?_id=')}" />
...
</p:dataTable>
控制器:
public void viewItem(SelectEvent event) {
// ...
}
public void viewItem(String viewUrl) {
// ...
}
我可以为 bean 添加额外的属性,但由于它是通用的,并且提供模型项不会污染它。
有什么解决办法吗?
【问题讨论】:
-
您可以设置一个
f:attribute并在事件监听器中读取它。 -
@JasperdeVries 怎么读的?
<p:ajax ...><f:attribute name="test" value="abc" /></p:ajax>在 ajax 请求中也没有在事件中看到该属性的任何痕迹。 -
相关线程:forum.primefaces.org/viewtopic.php?t=37824 它对我有用 p:inputtext+f:param+p:ajax。
标签: ajax jsf primefaces parameters