JSF 2.0:POST/Redirect/GET模式,当action方法返回null时(保持在同一页面上)

mar*_*osh 5 jsf-2

我需要在刷新时避免双重POST.所以我在这篇文章中使用POST/Redirect/GET模式(faces-redirect=true)和导航处理程序(@BalusC).当action方法返回时(如何在同一页面上),如何在JSF 2.0中使用该模式?它甚至可能还是我需要使用其他POST/Redirect/GET?我需要保持一个视图范围的bean,所以返回动作方法相同的视图(PRG工作)不是一个解决方案(导致丢失).nullview scope

查看test.xhtml:

<h:commandButton action="#{bean.send}"/>
Run Code Online (Sandbox Code Playgroud)

豆:

@ManagedBean
@ViewScoped
class Bean {
   String send() {
       // do something...
       return null;
   }

   String send2() {
       // do something...
       return "test";  // view scope lost
   }
}
Run Code Online (Sandbox Code Playgroud)

vic*_*era 0

马里奥什。

Post/Redirect/Get 会导致两种生命周期场景:

  • 重定向会导致 Non-Faces 响应(JSF-2 规范的第 2.1 节)。

  • Get 会引发带有 Faces 响应的 Non-faces 请求(第 2.1.1 节)。在此场景中创建了一个新视图。