JSF 2.0使用链接在请求范围bean之间传递对象

时间:2012-09-27 15:23:58

标签: java jsf

有一段时间我试图在两个页面之间传递一个对象,即使用不同的托管bean。我正在使用jsf 2.1和primefaces 3.1。

我的情况:

  1. 我有一个 p:dataTable ,一列是 h:link ,用户可以点击这里编辑当前对象
  2. 单击新页面后,
  3. 将打开,其中将显示所选对象的内容以供进一步操作
  4. 我尝试从第1页发送一些参数作为GET请求并从第2页处理它。它可以工作,但这不是我想要的解决方案。我需要选择的整个对象。我想在请求映射中传递它,或者将负责第1页的bean声明为@SessionScoped并从第二个注入这个bean。

    我没有成功的是在更改页面之前找出选择了哪个对象。我已尝试使用ajax或actionListener作为链接标记,但没有任何作用。在执行actionListener或ajax事件之前,页面已更改...

    如何首先设置所选对象/行,然后才更改页面?

    感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您需要使用h:link,而不是使用p:commandLink,在actionListener中设置所选对象,并使用javascript行更改oncomplete阶段中的页面比如location = 'page2.xhtml';

您可以在下面找到相关的标签文档。它也存在于3.1版本中。

http://www.primefaces.org/docs/vdl/3.4/primefaces-p/commandLink.html

PS:第1页或第2页仍需要会话范围,否则无效。