Response的sendRedirect实现JSF内的URL重定向
By Minidxer | January 22, 2008
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: Java, JavaServer, JSF, Response, sendRedirect, URL, 重定向
貌似技术性的东西都每没人关心
呵呵,以后这样的文章在这里将会占据很大的比例
感觉“热门”的话题实际上的价值并没有多少,并不能帮助大家解决问题,相反这样的技术性的东西却可以帮助解决问题,搜索引擎和我都较喜欢这样的文章~
呵呵 难道我只能找老的东西来聊天?
无所谓啊,哪里都可以~或者http://blog.minidx.com/guestbook,随便写随便写~~~~
这个问题也困挠我很久了,按照楼主的方法今天终于解决了,多谢楼主。
在JSF中方法执行完后有默认的requestdispatcher的forward方法,执行response的redirect后也会执行那个forward。
~~~本来都以为JSF的RESPONSE重定向不能用了,呵呵。
thanks a lot.