使用纯JSF获取调用页面

  • 本文关键字:调用 获取 JSF jsf
  • 更新时间 :
  • 英文 :


JSF 1.2-1.2_07-b03-FCS

JSTL 1_1-mr2 (special build)

Java 1.6.0_22-b04

Eclipse 3.6.0 (Helios)

Tomcat 6.0.28(也需要在Weblogic上运行)

IE 7.0.5730.13

Firefox:

6.0

我们有页面:http://{主机:端口}/mybase/脸/mypage.jsp…

通过超链接、重定向等方式从多个外部页面调用

我们希望以纯"JSF"方式确定调用它的页面的URL(为了实现命令按钮"返回"按钮)。

我们知道我们可以这样做:

    FacesContext facesContext = FacesContext.getCurrentInstance();
    ExternalContext externalContext = facesContext.getExternalContext();        
    HttpServletRequest origRequest = 
        (HttpServletRequest)externalContext.getRequest();
    String referrer = origRequest.getHeader("referer"); 

但是,这需要HttpServletRequest,这需要包含servlet-api.jar文件。

问题是:这是否可以用纯JSF的方式完成,从而不包括servlet-api.jar文件?

谢谢,约翰。

但是,这需要HttpServletRequest,这需要包含servlet-api.jar文件

这没有意义。JSF本身已经有一个Servlet API依赖项。也许您指的是IDE中的编译错误,因为项目根本没有与目标运行时相关联?在这种情况下,请仔细阅读:如何导入javax。我的Eclipse项目中的servlet API ?

对于具体问题,只需使用ExternalContext#getRequestHeaderMap()获取请求头的映射。

String referrer = externalContext.getRequestHeaderMap().get("referer"); 
// ...

最新更新