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