gpt4 book ai didi

java - Struts2 anchor 标记不包含 contextPath

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:40:00 27 4
gpt4 key购买 nike

%{#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>

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

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

谢谢!

最佳答案

这应该有效:

<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>

关于java - Struts2 anchor 标记不包含 contextPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3962478/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com