如何在jsp中创建绝对URL?

sla*_*ick 7 url jsp jstl

如果有<c:url value="/article"/>一个jsp,我实际上想要它生产http://mysite.com/context/article.有没有简单的方法来实现这一点?

Bal*_*usC 12

没有简单的方法.硬编码或输出以下内容:

${fn:replace(pageContext.request.requestURL, pageContext.request.requestURI, '')}${pageContext.request.contextPath}
Run Code Online (Sandbox Code Playgroud)

虽然很麻烦,但是当您想要正确地考虑URL的协议和端口部分时,没有更短/更好的方法.您可以在最高分配${pageContext.request}${r}.

<c:set var="r" value="${pageContext.request}" />
Run Code Online (Sandbox Code Playgroud)

这样你才能最终得到这个

${fn:replace(r.requestURL, r.requestURI, '')}${r.contextPath}
Run Code Online (Sandbox Code Playgroud)

也就是说,我只是看不出这个要求是如何有用/有价值的.我总是将我的webapp特定链接编码为相对于当前上下文或HTML <base>标记.否则,当您的域,端口和/或上下文发生更改时,您将需要进行大量维护.为什么这个要求?

也可以看看: