如何在jsp中创建绝对URL?

时间:2010-06-28 08:48:30

标签: jsp url jstl

如果jsp中有<c:url value="/article"/>,我实际上希望它生成http://mysite.com/context/article。有没有简单的方法来实现这个目标?

1 个答案:

答案 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>标记。否则,当您的域,端口和/或上下文发生更改时,您将需要进行大量维护。为什么要这个?

另见: