如果有 <c:url value="/article"/>
在 jsp 中,我实际上希望它产生 http://mysite.com/context/article
.有没有简单的方法来实现这一点?
最佳答案
没有简单的方法。对其进行硬编码或输出以下内容:
${fn:replace(pageContext.request.requestURL, pageContext.request.requestURI, '')}${pageContext.request.contextPath}
很麻烦,但是当您想正确考虑 URL 的协议(protocol)和端口部分时,没有更短/更好的方法了。您最多可以分配 ${pageContext.request}
至${r}
.<c:set var="r" value="${pageContext.request}" />
这样你就可以结束了${fn:replace(r.requestURL, r.requestURI, '')}${r.contextPath}
也就是说,我只是看不到这个要求是如何有用/有值(value)的。我总是将我的 webapp 特定链接编码为相对于当前上下文或 HTML
<base>
标签。否则,当您的域、端口和/甚至上下文发生变化时,您将不得不进行大量维护。为什么有这个要求?也可以看看:
<base>
tag? (其实是敏感话题)关于jsp - 如何在jsp中创建绝对url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3131063/