有一段时间我试图在两个页面之间传递一个对象,即使用不同的托管bean。我正在使用jsf 2.1和primefaces 3.1。
我的情况:
我尝试从第1页发送一些参数作为GET请求并从第2页处理它。它可以工作,但这不是我想要的解决方案。我需要选择的整个对象。我想在请求映射中传递它,或者将负责第1页的bean声明为@SessionScoped并从第二个注入这个bean。
我没有成功的是在更改页面之前找出选择了哪个对象。我已尝试使用ajax或actionListener作为链接标记,但没有任何作用。在执行actionListener或ajax事件之前,页面已更改...
如何首先设置所选对象/行,然后才更改页面?
感谢您的帮助。
答案 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页仍需要会话范围,否则无效。