【问题标题】:get the url until the context path获取 url 直到上下文路径
【发布时间】:2012-07-26 05:45:41
【问题描述】:

我使用 Icefaces 和 JSF,但我遇到了这个问题: 我有以下网址: http://myMappedServer/myApp/followingThings

我想在我的 xHtml 页面中获取值 http://myMappedServer/myApp 如何在不使用托管 bean 的情况下实现这一目标?

【问题讨论】:

    标签: url jsf


    【解决方案1】:

    使用 EL:#{request.contextPath}

    这对于创建导航链接非常有用,在您的主模板中设置一个 Facelets 变量:)

    <ui:param name="root" value="#{request.contextPath}/" />
    

    更新:它是not recommended to use the full path available in the app server,因为不能保证它是用户用来访问您的应用程序的同一个 URL,所以请注意这一点。

    不过,如果你真的想要can do that,可以使用HttpServletRequest 中提供的一些方法来创建这样的字符串:

    #{request.scheme}://#{request.serverName}:#{request.serverPort}#{request.contextPath}
    

    【讨论】:

    • @aika 对,我已经更新了如何做到这一点的答案。但请注意,不建议使用它来创建链接,因为它不能保证与用户用来访问它的地址相同(例如,您的应用程序可能位于代理或负载均衡器后面)。跨度>
    • 你好eljunior,我确实想得到代理映射的域。有什么办法吗?谢谢你:)
    • 恐怕不会,至少不会通过 Servlet API/JSF。请注意,仅使用 contextPath 将适用于应用程序中的导航链接,您只需将完整 url 用于应用程序之外的内容,例如电子邮件或报告。在这种情况下,您最好将 URL 作为属性文件中的配置并将其公开在 @ApplicationScoped bean 中。如果您出于某种原因真的不想这样做,也许您会更幸运地提出一个特定于您的代理的问题,例如“如何获取 nginx 后面的用户 url?”什么的。
    • 我真的在寻找这个答案,非常感谢。
    猜你喜欢
    • 2016-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 2021-10-15
    相关资源
    最近更新 更多