通常,要在 JSP 中获取请求 URL,我会使用
${pageContext.request.requestURL}
但是在我正在使用的项目中(因为我猜我们使用瓷砖)如果我运行上面的内容,我会得到类似的东西
WEB-INF/pathTo/pageName.jsp
即使请求 URL 是另一个 URL,并且这只是使用图块包含的 JSP 的路径。
在这种情况下,如何使用 JSP EL 获取请求 URL?
Tiles 已经重写/转发了请求,所以当你的 jsp 收到请求时,它不是原始请求。
你可以做两件事..
在您的控制器中获取原始网址并将其作为属性放置request.setAttribute("origRequestURL", request.getRequestURL())
,然后使用${origRequestURL}
看看这个属性是否在转发之前保持原来的:
<% request.getAttribute("javax.servlet.forward.request_uri"); %>
或${requestScope['javax.servlet.forward.request_uri']}