将bean数据从一个jsf facelet发送到另一个jsf facelet

将bean数据从一个jsf facelet发送到另一个jsf facelet,jsf,Jsf,我在jsf应用程序中有一个表,其中包含来自数据库的一些数据。我已经将id值作为链接,我的目标是将数据从所选行传递到另一个facelet。我该怎么做?我得到的答案是: <td><a href="editOrDeletePage.xhtml?productid=#{product.id}">#{product.id}</a></td> 因此,目标是当用户单击链接时,将显示editOrDeletePage,我希望editOrDeletePage“

我在jsf应用程序中有一个表,其中包含来自数据库的一些数据。我已经将id值作为链接,我的目标是将数据从所选行传递到另一个facelet。我该怎么做?我得到的答案是:

 <td><a href="editOrDeletePage.xhtml?productid=#{product.id}">#{product.id}</a></td>


因此,目标是当用户单击链接时,将显示editOrDeletePage,我希望editOrDeletePage“接收”产品id,以便它知道要显示哪些数据?我该怎么做呢?

如果您确实想使用静态链接,当然,您可以使用某种事件侦听器从目标页面读取请求参数

<f:event listener="#{bean.preRender}" type="preRenderView" />

但我相信,这并不是JSF处理导航的真正方式。您可能希望使用commandLink或其他处理用户操作的方法。或者,更好的方法是,考虑使用数据表,用户可以在其中选择一行,您可以处理选择。

可能的重复,所以您在第二个块中发布的代码是preRender()方法的主体?是的,这就是我的意思。您可以将productId设置为变量,然后在呈现页面时使用它。BalusC答案中链接的活动有一个更完整的示例
FacesContext facesContext = FacesContext.getCurrentInstance();
String productId = (String) facesContext.getExternalContext().
                              getRequestParameterMap().get("productid");