Tiles和$ {pageContext.request.requestURL}

时间:2012-11-26 13:08:14

标签: jsp el tiles

通常,要在JSP中获取请求URL,我会使用

${pageContext.request.requestURL}

但是在我正在使用的项目上(因为我们使用的是瓷砖)如果我运行上面的内容我会得到类似

的内容
WEB-INF/pathTo/pageName.jsp

即使请求URL是另一个,也就是使用tile包含的JSP的路径。

在这种情况下,如何使用JSP EL获取请求URL?

1 个答案:

答案 0 :(得分:4)

Tiles已经重写/转发了请求,所以当你的jsp收到请求时,它不是原始请求。

你可以做两件事......

    控制器中的
  1. 抓住原始网址并将其作为属性request.setAttribute("origRequestURL", request.getRequestURL())放置,然后使用${origRequestURL}

  2. 查看此属性是否在转发前保留原始内容: <% request.getAttribute("javax.servlet.forward.request_uri"); %>${requestScope['javax.servlet.forward.request_uri']}