我的jsf应用程序中有一个表,其中包含数据库中的一些数据。我已将id值设为链接,我的目标是将数据从所选行传递到另一个facelet。我怎样才能做到这一点?我有的href是:
<td><a href="editOrDeletePage.xhtml?productid=#{product.id}">#{product.id}</a></td>
所以目标是当用户点击链接时,会显示editOrDeletePage,我希望editOrDeletePage“提取”产品ID,以便知道要显示哪些数据?我怎么能这样做?
答案 0 :(得分:2)
如果你定义想要使用静态链接,你当然可以使用某种事件监听器从目标页面读取请求参数
<f:event listener="#{bean.preRender}" type="preRenderView" />
从请求中读取参数:
FacesContext facesContext = FacesContext.getCurrentInstance();
String productId = (String) facesContext.getExternalContext().
getRequestParameterMap().get("productid");
但我相信它并不是真正的JSF方式来处理导航。您可能希望使用commandLink或其他一些处理用户操作的方法。或者,更好的是,考虑使用数据表,用户可以选择一行,并且可以处理选择。