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

By Minidxer | January 22, 2008

folder-green-parent-48x48 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看自己的需要返回

Topics: 程序开发相关 | 6 Comments » | 443 views Tags: , , , , , ,

Related Post

6 comments | Add One

  1. yiyix - 01/24/2008 at 10:40 am

    貌似技术性的东西都每没人关心 :(

  2. Minidxer - 01/24/2008 at 11:21 am

    呵呵,以后这样的文章在这里将会占据很大的比例
    感觉“热门”的话题实际上的价值并没有多少,并不能帮助大家解决问题,相反这样的技术性的东西却可以帮助解决问题,搜索引擎和我都较喜欢这样的文章~

  3. leo - 01/25/2008 at 1:15 pm

    呵呵 难道我只能找老的东西来聊天?

  4. Minidxer - 01/25/2008 at 1:45 pm

    无所谓啊,哪里都可以~或者http://blog.minidx.com/guestbook,随便写随便写~~~~

  5. RereMouse - 05/23/2008 at 9:18 pm

    这个问题也困挠我很久了,按照楼主的方法今天终于解决了,多谢楼主。

    在JSF中方法执行完后有默认的requestdispatcher的forward方法,执行response的redirect后也会执行那个forward。
    ~~~本来都以为JSF的RESPONSE重定向不能用了,呵呵。

  6. luffy - 01/3/2009 at 3:04 am

    thanks a lot.

Leave a Comment

Name(*):

E-Mail(*) :

Website :

Comments :

Search Posts

赞助商链接

Archives