我觉得这将是一个最短答案的问题:“这就是 JSF 取代 JSP 的原因”,但我会继续问它。
问题:我想知道:我能否获得 JSF 页面的 Response 对象(如果有的话)?
为什么奇怪? :我发现自己处于需要从 JSF 页面传递到 JSP 页面的情况,所以我想为什么不从从 JSF 页面调用的 bean 重定向(使用 response.sendRedirect
)然后......可以看到它的去向。
我觉得这可以以更清洁的方式完成,但不知道怎么做!
编辑:同时,我还将询问哪种方式最适合从 JSF 页面重定向。
预先感谢您的建议。
最佳答案
好吧,如果您想获得 response
对象,您可以在 JSF
中拥有它像下面这样!
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
但你真的不需要得到
response
对象仅重定向到 JSF
之外.这可以通过以下方式更轻松地完成:ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
externalContext.redirect("http://www.example.com/myJspPage.jsp");
编辑 :
当您在任何 不作为方法,你可以使用以上任何一种!但是当你在任何 行动方法,正确
JSF
重定向的方式是:public String goToOutsideAction(){
....
return "/myPage.xhtml?faces-redirect=true"
}
该方法应该返回一个上下文相关的 View ID,目标必须是一个 JSF 页面。
关于jsp - JSF 中的响应对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16776981/