在Struts2中,%{#request.contextPath}不能在s:a标记中工作。(具体地说,是Struts 2.2.1。)有没有办法让它工作呢?它可以在其他Struts2标签中工作。
以下是Struts2项目中JSP文件中的两行,其上下文路径为"/websites":
<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标签中不允许使用${}。再说了,我在努力保持一致。我通常也尽量避免使用${},因为它不会自动转义输出。
谢谢!
发布于 2010-10-19 15:58:32
这应该是可行的:
<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>标记:
<%-- 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>发布于 2010-10-19 03:14:41
Struts2支持EL吗
如果${request.contextPath}支持,您可以使用它。
https://stackoverflow.com/questions/3962478
复制相似问题