如果jsp中有<c:url value="/article"/>
,我实际上希望它生成http://mysite.com/context/article
。有没有简单的方法来实现这个目标?
答案 0 :(得分:12)
没有简单的方法。硬编码或输出以下内容:
${fn:replace(pageContext.request.requestURL, pageContext.request.requestURI, '')}${pageContext.request.contextPath}
很麻烦,但是当您想要正确考虑URL的协议和端口部分时,没有更短/更好的方法。您最高可以将${pageContext.request}
分配给${r}
。
<c:set var="r" value="${pageContext.request}" />
这样你才能最终得到这个
${fn:replace(r.requestURL, r.requestURI, '')}${r.contextPath}
那就是说,我只是看不出这个要求是如何有用/有价值的。我总是将我的webapp特定链接编码为相对于当前上下文或HTML <base>
标记。否则,当您的域,端口和/或上下文发生更改时,您将需要进行大量维护。为什么要这个?