【发布时间】:2013-10-01 14:10:32
【问题描述】:
如何重定向到同一页面(我不知道该页面;重定向是在由多个页面共享的菜单内完成的)?
我试过了
return "?faces-redirect=true";
在操作方法结束时,但我收到一条错误消息,因为找不到“?faces-redirect=true”的导航案例。
提前感谢您的帮助。
【问题讨论】:
标签: jsf-2
如何重定向到同一页面(我不知道该页面;重定向是在由多个页面共享的菜单内完成的)?
我试过了
return "?faces-redirect=true";
在操作方法结束时,但我收到一条错误消息,因为找不到“?faces-redirect=true”的导航案例。
提前感谢您的帮助。
【问题讨论】:
标签: jsf-2
您需要在结果中提供有效的视图 ID,而不仅仅是查询字符串。可以通过UIViewRoot#getViewId()获取当前视图ID。
String viewId = FacesContext.getCurrentInstance().getViewRoot().getViewId();
return viewId + "?faces-redirect=true";
【讨论】:
只需从您的应用程序操作中返回 null 或空字符串。
根据 JSF2.2 规范,第 7.4.1 节:
如果应用程序操作返回的结果为null或空 字符串,并且没有映射到当前视图的导航案例 标识符有一个非空条件表达式,相同的视图必须是 重新显示。
【讨论】: