是否可以从托管 bean 的构造函数导航到另一个页面/视图?如果发生任何异常,我想要此重定向。我尝试了很多方法:
试一试:
getFacesContext().responseComplete();
getFacesContext().getApplication().getNavigationHandler().handleNavigation(getFacesContext(), null, "gotoPartError");
getFacesContext().renderResponse();
尝试2:
getServletResponse().sendRedirect("partError.jspx")
尝试3:
getFacesContext().responseComplete();
getFacesContext().getExternalContext().redirect(getServletRequest().getContextPath() + "/pages/partError.jspx");
尝试4:
RequestDispatcher dispatcher = getServletRequest().getRequestDispatcher("partError.jspx");
dispatcher.forward(getServletRequest(), getServletResponse());
尝试5:
FacesContext context = getFacesContext();
UIViewRoot newPage = context.getApplication().getViewHandler().createView(context, "/partError.jspx");
context.setViewRoot(newPage);
context.renderResponse();
尝试6:
ControllerContext.getInstance().getCurrentViewPort().setViewId("partError");
尝试 7:
Exception Handler in adfc-config.xml
尝试 8:
Custom service handler defined in /.adf/META-INF/services/oracle.adf.view.rich.context.Exceptionhandler which extends oracle.adf.view.rich.context.Exceptionhandler
尝试9:
By extending JSF Life Cycle
他们都没有工作。对于我收到的所有案例
java.lang.IllegalStateException: Cannot forward after response has been committed
在 JSF 1.2 中真的不可能吗?由于我使用的是 ADF 11.1.1.6.0,它使用 JSF 1.2,所以上面的一些“尝试”包含 ADF Faces 方式。
无论如何,我需要 JSF 1.2 或 ADF Faces 来导航到错误页面。我获得成功的唯一方法是使用从后端执行的 javascript 在出现错误_self
的情况下在窗口中打开错误页面,但我真的不喜欢它。
在这件事上的任何指示都会非常有帮助。