【问题标题】:h:outputLink prefixes context path to a URL valueh:outputLink 为 URL 值添加上下文路径前缀
【发布时间】:2014-05-07 02:51:43
【问题描述】:

我有一个h:outputLink,如下图:

<h:outputLink value="#{doc.value}" style="color:blue">#{doc.key}</h:outputLink>

该值为网址 www.example.com。当我单击该值时,我在地址栏中看到的 URL 是 http://localhost:8080/Project/www.example.com。为什么上下文路径以 URL 为前缀?

我查看了生成的 HTML,但该值是没有上下文路径的实际 URL。我在JSF中试过&lt;a&gt;,但没有区别。

任何解决此问题的帮助将不胜感激。谢谢!

【问题讨论】:

    标签: jsf tomcat jsf-2


    【解决方案1】:

    &lt;h:outputLink /&gt; 如果 value 字段是相对路径,则将其值附加到当前父路径(而不是 Servlet 上下文)。这意味着如果你在http://localhost:8080/Project/users.xhtml中有这个特定的链接:

    <h:outputLink value="sales.xhtml">
        Sales
    </h:outputLink>
    

    这将尝试将您重定向到http://localhost:8080/Project/sales.xhtml

    好吧,当您指定一个相对的时,JSF 知道它必须将它附加到您当前的父 url。为了避免这种情况,请写绝对网址:

    public String getValue(){
        return "http://www.example.com";
    }
    
    <h:outputLink value="#{doc.value}">
        Custom external url
    </h:outputLink>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-30
      • 1970-01-01
      • 1970-01-01
      • 2019-01-28
      • 2011-09-15
      • 2014-01-26
      • 1970-01-01
      • 2013-07-24
      相关资源
      最近更新 更多