【问题标题】:Struts2 - Linking to external URL on JSP *excluding* local context path?Struts2 - 链接到 JSP 上的外部 URL *不包括 *本地上下文路径?
【发布时间】:2011-06-06 14:44:00
【问题描述】:

使用 Struts2,我在我的 java 代码中计算一个链接,并在 JSP 页面的 getter 中公开链接的字符串。我尝试使用<a href='<s:property value="mylink" />'>a Link</a> 链接到此外部链接。遗憾的是,Struts 总是将本地上下文放在此链接之前,因此生成的链接看起来像 <a href="http://localhost:8080/Mycontext/https://twitter.com/some?more=param&ete=rs">a Link</a>

注意:我也尝试使用 <s:a><s:url>includeContext="false" ...相同的结果。这里有什么问题?

【问题讨论】:

    标签: jsp tomcat struts2


    【解决方案1】:

    Struts always puts the local context before this link

    嗯?如果你真的写了一个普通的<a ... >元素

    <a href='<s:property value="mylink" />'>a Link</a>
    

    在你的jsp中,那么Struts2将添加任何东西,Struts2甚至都不知道那里有一个链接,property标签只是一个普通的“回显的值此属性” 指令。您可以通过在 A 元素之外复制相同的标签 &lt;s:property value="mylink" /&gt; 来检查。要么您在操作中计算错误的属性,要么您没有编写该 jsp 片段,而是使用了一些与链接相关的 Struts2 标记(&lt;s:a&gt;&lt;s:url&gt;)。

    顺便说一句,如果你想放置一个与你的应用程序无关的外部链接,第一个选项(一个普通的 A 元素,而不是 Struts2 链接标签)似乎是正确的方式。

    【讨论】:

    • 你说得对,我没有正确计算 URL - 实际上我对整个 URL 进行了 URL 编码,这使得开头的“http://”无效。但是 Struts2(或 JSP 本身?)似乎意识到有一个 标记具有定义不正确的 href 属性,然后在上下文之前添加。谢谢:-)
    • 您是否真的查看了生成的 html 内容,以断言上下文已预先添加?也许发生的事情是链接是相对的(缺少 http://... ),因此浏览器 - 隐式地 - 添加了当前上下文。
    • 是的,我查看了生成的 HTML,确实缺少 http://(而不是 httpandsomeASCIIcodes 在 URL 的开头),所以我猜不是只留下相对 URL, Struts2 使用 appcontext 转换为绝对 URL。不能说我喜欢那个“功能”。
    猜你喜欢
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    相关资源
    最近更新 更多