日期:2014-05-16  浏览次数:20557 次

Response的sendRedirect实现JSF内的URL重定向

JavaServer Face(JSF)内置了HttpServletResponse,所以不可以直接在JSF的Bean内使用sendRedirect之类的重定向函数。花了N多的时间查资料,发现误导性的文章比较多,为了有同样需要的人少浪费点时间在这身上,这里把测试通过的方法记录一下:

●导入Servlet包
import javax.servlet.http.*;

●加入下面的取得HttpServletResponse的函数:

protected HttpServletResponse getResponse() ...{
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) facesContext
 .getExternalContext().getResponse();
return response;
}
?
●在需要重定向的地方加入下面代码
response.sendRedirect("sample.jsp");
facesContext.responseComplete(); // 这一句很重要
return null;
?
注:最后的return看自己的需要返回