2010-10-02 151 views
0

我有一个非常严格的要求,使用POST将请求参数传递给我的应用程序在进入。一旦进入应用程序(page1),输入表单信息并通过commandButton继续到下一页(page2),期望的是数据将被发布并随后从会话作用域管理bean中读取。除了在页面2上使用浏览器导航回页面1以外,所有的都可以正常工作。JSF和浏览器返回

我已经尝试在导航规则中添加一个重定向标记,从page1导航到page2无济于事。我也尝试了Post-Get-Redirect模式的实现(http://balusc.blogspot.com/2007/03/post-redirect-get-pattern.html)。我在这里错过了很明显的东西吗

+0

当您尝试导航时会发生什么?你期望发生什么? – frisco 2010-10-02 08:42:31

+0

我期望在重定向到page2并使用浏览器返回page1后page1上的值持续存在。现在,所有的值都丢失了。 – gevaudan 2010-10-02 08:46:29

+0

您正在为Page1使用的bean的范围是什么?如果范围是“请求”,那么不要指望在重定向时保留表单中的值。 – 2010-10-06 17:57:21

回答

0

亚伯,page1的范围是请求。

我们想出的解决方案并不理想,就是在上一页禁用浏览器缓存。这意味着无论何时使用浏览器刷新按钮刷新页面或单击浏览器后退按钮,浏览器都会指示该页面已过期,并提示您是否要重新提交请求。

我们确实有围绕在网页中提供导航按钮的工作,但是这个想法是支持浏览器回来的。使用GET参数很容易,但POST提供了额外的复杂性,我们已经决定通过提供我们的内部导航按钮来减轻复杂性。