2

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

我的情况:

  1. 我有一个p:dataTable并且一列是h:link用户可以单击以编辑当前对象
  2. 单击后将打开一个新页面,其中将显示所选对象的内容以供进一步操作

我尝试从第 1 页发送一些参数作为 GET 请求并从第 2 页处理它们。它有效,但这不是我想要的解决方案。我需要选择的整个对象。我想在请求映射中传递它,或者将负责第 1 页的 bean 声明为 @SessionScoped 并从第二个注入这个 bean。

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

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

谢谢您的帮助。

4

1 回答 1

1

而不是 using h:link,您可能想使用p:commandLink,将所选对象设置为actionListener,并在阶段更改页面oncomplete,使用类似 的 javascript 行location = 'page2.xhtml';

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

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

PS:无论是第 1 页还是第 2 页仍然需要是会话范围的,否则将无法正常工作。

于 2014-06-27T11:55:39.853 回答