关于 SO 和其他地方的这个主题有几个相关的问题,但我找不到关于这个特定问题的明确答案。
我有一个p:dataTable
并且我希望能够单击一行并打开一个详细信息页面(一个新页面,而不是对话框或窗口)。
我已经通过这种方式解决了它(我从 primefaces 网站获得,由于某种原因它不再存在: http://web.archive.org/web/20101001223235/http: //www.primefaces.org/showcase/ ui/datatableRowSelectionInstant.jsf):
<p:dataTable var="order" value="#{orderBean.orders}" selection="#{orderBean.selectedOrder}" selectionMode="single" rowKey="#{order.number}">
<p:ajax event="rowSelect" listener="#{orderBean.orderSelect}"/>
<p:column ... />
</p:dataTable>
然后在 bean 中执行导航:
public void orderSelect(SelectEvent event) {
ConfigurableNavigationHandler nh = (ConfigurableNavigationHandler)FacesContext.getCurrentInstance().getApplication().getNavigationHandler();
nh.performNavigation("orderDetail?faces-redirect=true");
}
我的问题:有没有一种方法可以在 JSF 内部实现这一点而无需支持 bean 的帮助?
我也在问,因为他们从 primefaces 网站上删除了代码示例,这可能表明这不是做类似事情的正确方法。