JSF,如何在不同的页面/辅助bean中设置属性,然后导航到该页面?

时间:2010-04-23 15:00:26

标签: java jsf

我正在使用JSF 2.0并尝试在我的应用程序中的不同页面之间传递值。

设置如下: 我有一个名为userSelect的页面,它有一个支持bean userSelectBacking。在此页面上,我显示了一个可以选择并使用h:commandbutton提交的用户列表,当页面提交时,导航将转到userEdit页面。

我有一个名为userEdit的页面,它有一个支持bean userEditBacking,它显示用户的信息 并允许该用户进行编辑。

我想将从userSelect页面中选择的用户传递到userEdit页面。 我目前正在使用f:setPropertyActionListener来设置userSelect页面中userddit支持的用户,但是当我导航到userEdit页面时,它会丢失我设置的信息。

有没有办法可以在两个页面/支持bean之间传递值?

感谢

1 个答案:

答案 0 :(得分:1)

  

我目前正在使用f:setPropertyActionListener来设置userSelect页面中userddit支持的用户

它应该有用。

  

然而,当我导航到userEdit页面时,它会丢失我设置的信息。

如果数据加载逻辑错误,或者在bean请求作用域时发出重定向,则会发生这种情况。

要修复数据加载逻辑,只需确保在请求作用域bean的情况下,后续请求中保留相同的数据模型。通常你在getter中使用bean的构造函数或延迟加载。如果这不是一个选项,那么你需要将bean放在更广泛的范围内,例如@ViewScope@SessionScope

要解决重定向问题,要么只是不触发重定向(即从导航案例中删除<redirect/>,要么不调用ExternalContext#redirect()),或者将bean放在更广泛的范围内。 / p>