查看scoped bean没有被破坏

时间:2013-03-15 21:53:27

标签: jsf-2

我正在使用JSF 2.1和primefaces 3.4。

我的所有xhtml视图都包含有标题,左侧导航面板,页脚和内容的布局。托管bean位于查看范围

在我的大多数观看中,我使用 preRenderView 类型的 f:event 侦听器来初始化某些属性和服务。在监听器中,我有条件语句来检查回发请求。仅当请求不是回发时,它才会在 preRenderView 侦听器中排除完整代码。

即使我导航到任何其他页面(从假设页的 A 以页的)经由左侧导航面板链路,在视图范围没有被破坏,当我再次返回页面 A 时,检查回发请求返回 true 。不知道为什么正在发生。

赞赏是否有人可以帮助我?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您需要通过GET而不是POST进行导航。

即,使用<h:link><h:button>代替<h:commandLink><h:commandButton>进行纯页面到页面导航。这样isPostback()将返回false

此外,您还不清楚您是如何观察到视图范围bean未被破坏的。您是否在bean的构造函数上放置了一个调试断点,以查看在请求新页面时是否调用了它?如果它实际上是完全相同的实例,那么只有在您实际有条件地包含新页面而不是真正导航到物理上不同的视图时才会发生这种情况。