【问题标题】:Is there a way to get the Base URL from an Application-scoped bean in JSF?有没有办法从 JSF 中的应用程序范围的 bean 获取基本 URL?
【发布时间】:2015-09-06 18:26:38
【问题描述】:

在我的 JSF Facelets 页面中,我知道我可以使用

#{request.requestURL}

获取完整的 URL 以构建可导出的链接等。但是,我有一个 @ApplicationScoped bean,我需要基本 URL(即“http://dnsname/app”)用于报告和其他数据。是否有一种标准方法可以访问 web-app 容器以获取此信息?

【问题讨论】:

    标签: jsf servlets jsf-2


    【解决方案1】:

    直到第一个 HTTP 请求被触发。域/主机/基础是完全独立于 Web 应用程序配置的(在应用服务器和/或代理服务器上,如果有的话)。如果不能在第一个 HTTP 请求期间将其延迟设置为应用程序范围的变量,例如servlet request listenerservlet filter 或者可能在该应用程序范围 bean 的延迟加载 getter 中,那么您需要通过例如在 Web 应用程序外部配置它系统属性、VM参数、属性文件等

    【讨论】:

    • 其实我也想出了一个类似的方法。在我的 ApplicationScoped bean 中,只是等待,直到可以访问 FaceletsContext.getCurrentInstance() != null 的东西调用它——然后它从那里获取请求 URL。
    猜你喜欢
    • 1970-01-01
    • 2018-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-22
    • 2012-07-28
    • 2021-03-13
    相关资源
    最近更新 更多