【问题标题】:Struts2 anchor tag doesn't include contextPathStruts2 锚标记不包括 contextPath
【发布时间】:2011-04-27 02:57:26
【问题描述】:

%{#request.contextPath} 在 Struts2 中的 s:a 标记内不起作用。 (具体来说是Struts 2.2.1。)有没有办法让它工作?它适用于其他 Struts2 标记。

在上下文路径为“/websites”的 Struts 2 项目中的 JSP 文件中有两行:

<s:a href="%{#request.contextPath}/clickme" theme="simple">Click here.</s:a>
<s:form method="post" action="%{#request.contextPath}/submitme" theme="simple"></s:form>

这是输出:

<a href="/clickme">Click here.</a>
<form id="submitme" name="submitme" action="/websites/submitme" method="post"></form>

请注意,上下文路径不在锚点之外,但包含在表单中。

附:我不能在这里使用${#pageContext.request.contextPath},因为Struts2 标签中不允许使用${}。此外,我正在努力保持一致。我也尽量避免${},因为它不会自动转义输出。

谢谢!

【问题讨论】:

  • 我不使用 Struts2,但我快速浏览了他们的文档,s:url 不是您需要的吗?

标签: java jsp struts2 contextpath


【解决方案1】:

这应该可行:

<s:set id="contextPath"  value="#request.get('javax.servlet.forward.context_path')" />
<s:a href="%{contextPath}/clickme" theme="simple">Click here.</s:a>

但是,您不应该这样做。当你需要一个 url 时,使用&lt;s:url&gt; 标签:

<%-- Without specifying an action --%>
<s:url id="myUrl" value="clickme" />
<s:a href="%{myUrl}" theme="simple">Click here.</s:a>

<%-- With an action --%>
<s:url id="myUrl" action="clickme" />
<s:a href="%{myUrl}" theme="simple">Click here.</s:a>

顺便说一句,表单的 action 属性不需要上下文路径:

<s:form method="post" action="submitme" theme="simple"></s:form>

【讨论】:

  • 谢谢。我试过&lt;s:set id="contextPath" value="#request.contextPath" /&gt; 没有成功,但没有试过你的版本。但最后我这样使用&lt;s:url /&gt;&lt;a href="&lt;s:url value="clickme" /&gt;"Click here&lt;/a&gt; 还使用了全局设置将includeParams 属性默认设置为“none”。
【解决方案2】:

Struts 2 是否支持EL

如果是的话,你可以使用${request.contextPath}....

【讨论】:

  • Struts 标签使用 OGNL 表达式
  • AAah,好的...JSP 2.0 支持 EL,因此 OP 可以将它与他的 Struts 2 标签一起使用(或者不能吗?)。我清楚地记得在 Struts 1.3.6 及更高版本中使用 EL....
  • 我在 P.S.部分问题是我不能在 Struts 2 标记中使用 ${} 语法,并且我倾向于避免使用它,因为它不会自动转义输出。
  • 你的 PS 可能会晚点出现(在我写完这篇文章之后)。我会尝试看看 Struts 2 在 JSP 2.0 及更高版本下是否支持EL
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 2021-12-27
  • 1970-01-01
相关资源
最近更新 更多