Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让back按钮与没有缓存集的JSF应用程序一起工作?_Jsf_Richfaces_Back Button_No Cache - Fatal编程技术网

如何让back按钮与没有缓存集的JSF应用程序一起工作?

如何让back按钮与没有缓存集的JSF应用程序一起工作?,jsf,richfaces,back-button,no-cache,Jsf,Richfaces,Back Button,No Cache,这是我遗传的一个问题。我们有一个JSF/RichFaces/Seam应用程序,出于安全原因,它没有缓存集。当用户点击后退按钮,导致表单的重新发布时,问题就出现了。有时(这是不一致的)在点击后退按钮后重新发布表单会将backingbean属性设置为null。当缓存设置为private时,不会发生这种情况。不幸的是,这不是一个选择 我一直在寻找解决方法,但我不确定是否有 有人知道用于此的标准模式吗 有人知道用于此的标准模式吗 是的,是模式。将添加到您感兴趣的导航案例中,以便在发布后重定向到GET请求

这是我遗传的一个问题。我们有一个JSF/RichFaces/Seam应用程序,出于安全原因,它没有缓存集。当用户点击后退按钮,导致表单的重新发布时,问题就出现了。有时(这是不一致的)在点击后退按钮后重新发布表单会将backingbean属性设置为null。当缓存设置为private时,不会发生这种情况。不幸的是,这不是一个选择

我一直在寻找解决方法,但我不确定是否有

有人知道用于此的标准模式吗

有人知道用于此的标准模式吗

是的,是模式。将
添加到您感兴趣的导航案例中,以便在发布后重定向到GET请求。然后,返回按钮将转到GET请求。在JSF2.x中,您还可以通过向结果中添加
?faces redirect=true
参数来实现这一点

然而,当您的Web应用程序开发得很差,导致您将POST请求从一页发送到另一页,而不是发送到self(最好是ajax风格的)时,它有一个缺点。这样,任何请求作用域bean在重定向GET请求中都不再可用

此外,当您使用commandlinks而不是outputlinks进行普通的页到页导航(例如菜单链接等)时,应将其固定为outputlinks。使用POST在这里完全没有价值,它们应该从一开始就得到


理想情况下,在JSF 1.x webapps中,如果您希望获得最佳的SEO、书签功能和用户体验,那么您不应该有任何导航案例。

我们有一个导航规则,当操作返回特定结果时,以及如果我尝试从操作添加另一个重定向到导航,则适用于这些帖子,它阻碍了重定向。你所说的是否意味着我们不应该通过操作导航进行其他重定向?我们不太关心SEO或书签功能,尽管用户体验肯定会受到影响。我应该提到的是,这篇文章不是commandlink的结果,而是commandButton。至于导航,不是一篇又一篇文章导航到结果页面,让您的bean操作方法设置结果并返回
null
void
,而不是返回导航结果。最后,通过ajax调用该方法,让它根据
rendered
属性重新呈现应该呈现结果(并最终隐藏表单)的组件。至于commandlinks和commandbutton,这真的不重要。我说的是菜单链接之类的,它们实际上不调用任何bean操作。唯一的问题是它需要对应用程序进行大量的重写。此时,报告队列是一个单独的页面,多个报告页面根据此导航规则重定向到该页面。