首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Struts2锚标记不包含contextPath

Struts2锚标记不包含contextPath
EN

Stack Overflow用户
提问于 2010-10-19 03:10:16
回答 2查看 6.8K关注 0票数 3

在Struts2中,%{#request.contextPath}不能在s:a标记中工作。(具体地说,是Struts 2.2.1。)有没有办法让它工作呢?它可以在其他Struts2标签中工作。

以下是Struts2项目中JSP文件中的两行,其上下文路径为"/websites":

代码语言:javascript
复制
<s:a href="%{#request.contextPath}/clickme" theme="simple">Click here.</s:a>
<s:form method="post" action="%{#request.contextPath}/submitme" theme="simple"></s:form>

下面是输出:

代码语言:javascript
复制
<a href="/clickme">Click here.</a>
<form id="submitme" name="submitme" action="/websites/submitme" method="post"></form>

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

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

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-19 15:58:32

这应该是可行的:

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

但是,您不应该这样做。当您需要url时,请使用<s:url>标记:

代码语言:javascript
复制
<%-- 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属性的上下文路径:

代码语言:javascript
复制
<s:form method="post" action="submitme" theme="simple"></s:form>
票数 1
EN

Stack Overflow用户

发布于 2010-10-19 03:14:41

Struts2支持EL

如果${request.contextPath}支持,您可以使用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3962478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档