【问题标题】:How to redirect to the same page after a POST requestPOST请求后如何重定向到同一页面
【发布时间】:2013-10-01 14:10:32
【问题描述】:

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

我试过了

return "?faces-redirect=true";

在操作方法结束时,但我收到一条错误消息,因为找不到“?faces-redirect=true”的导航案例。

提前感谢您的帮助。

【问题讨论】:

    标签: jsf-2


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 你也可以有一个void方法。更清楚了。它是一样的,而且效果很好。
      • 这不会执行重定向。这将执行前锋。
      猜你喜欢
      • 1970-01-01
      • 2016-06-18
      • 2017-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多