如何在POST请求后重定向到同一页面

时间:2013-10-01 14:10:33

标签: jsf-2

如何重定向到同一页面(我不知道页面;重定向是在几个页面共享的菜单中完成的)?

我试过

return "?faces-redirect=true";

在操作方法的末尾,但是我收到了一条错误消息,因为无法找到“?faces-redirect = true”的导航案例。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:19)

您需要在结果中提供有效的视图ID,而不仅仅是查询字符串。您可以按UIViewRoot#getViewId()获取当前视图ID。

String viewId = FacesContext.getCurrentInstance().getViewRoot().getViewId();
return viewId + "?faces-redirect=true";

答案 1 :(得分:-1)

只需从应用程序操作返回null或空字符串。

根据JSF2.2规范,第7.4.1节:

  

如果应用程序操作返回的结果是 null或为空   字符串,并且没有映射到当前视图的导航案例   identifier具有非null条件表达式,必须具有相同的视图   重新显示。