访问完整的URL,包括带有jstl的主机名
问题内容:
<c:url var="myUrl" value="/MyPath/${MyID}"/>
然后,我稍后使用(使用户能够复制链接):
<input size="35" disabled value="${myUrl}" />
它显示
/my-app-name/MyPath/23
但是我希望它成为
http://myHost/my-app-name/MyPath/23
我可以在字符串前面加上前缀,但是想要一种方法来主动获取正确的主机名…?
问题答案:
您需要根据JSTL函数自己做一些准备,HttpServletRequest#getRequestURL()
并提供一些帮助:
<c:set var="req" value="${pageContext.request}" />
<c:set var="baseURL" value="${fn:replace(req.requestURL, fn:substring(req.requestURI, 1, fn:length(req.requestURI)), req.contextPath)}" />
...
<c:url var="myUrl" value="${baseURL}/${MyID}"/>