如何使用当前的协议、端口、应用程序等,不使用scriptlet(仅使用EL)建立到当前服务器的绝对URL?
b4wnujal1#
您可以在JSTL的帮助下获取包含上下文根的基本URL,如下所示:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> ... <c:set var="baseURL" value="${fn:replace(pageContext.request.requestURL, pageContext.request.requestURI, pageContext.request.contextPath)}" /> ... <link rel="stylesheet" href="${baseURL}/foo.css" /> <script src="${baseURL}/foo.js"></script> <a href="${baseURL}/foo.jsp">link</a>
46scxncf2#
另一种说法是:
http://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}/thePage.jsp
6xfqseft3#
还有一种说法是:
<c:set var="serverPath" value="${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}"/>
我很惊讶GitHub Copilot只是建议代码片段。~~:)
3条答案
按热度按时间b4wnujal1#
您可以在JSTL的帮助下获取包含上下文根的基本URL,如下所示:
46scxncf2#
另一种说法是:
6xfqseft3#
还有一种说法是:
我很惊讶GitHub Copilot只是建议代码片段。~~:)