我觉得这将是一个最短的答案将是一个问题:“这就是为什么JSF取代了JSP”,但我会继续问问题. 问题:我想知道:我可以获取JSF页面的Response对象(如果有的话)? 为何奇怪? :我发现自
问题:我想知道:我可以获取JSF页面的Response对象(如果有的话)?
为何奇怪? :我发现自己处于需要从JSF页面传递到JSP的情况,所以我想为什么不从JSF页面调用的bean重定向(使用response.sendRedirect)然后……你可以看到它的前进方向.
我觉得这样可以用更干净的方式完成,但看不出怎么样!
编辑:在它上面,我还会询问哪种方式最适合重定向到JSF页面.
提前感谢您的建议.
好吧,如果你想获得响应对象,你可以在JSF中使用它!HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
但是你真的不需要将响应对象仅用于重定向到JSF之外.使用以下方法可以更轻松地完成此操作:
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext(); externalContext.redirect("http://www.example.com/myJspPage.jsp");
编辑:
当您使用任何非动作方法时,您可以使用上述任何一种方法!但是当你使用任何动作方法时,正确的JSF重定向方式是:
public String goToOutsideAction(){ .... return "/myPage.xhtml?faces-redirect=true" }
该方法应返回上下文相关视图ID,目标必须是JSF页面.