JSTL - печать текущего URL-адреса, включая строки запроса

${requestScope['javax.servlet.forward.servlet_path']} возвращает мне правильную строку, но не включает параметры, которые могут быть установлены в URL-адресе.

Пример:

http://localhost/path/i/want?param=1 должен дать мне строку /path/i/want?param=1

У меня такое чувство, что это нужно делать легко, но не могу понять.

Спасибо заранее!

Ответы

Ответ 1

Доступно ${requestScope['javax.servlet.forward.query_string']}.

Ответ 2

Я тоже искал какое-то время.

<c:set var="req" value="${pageContext.request}" />
<c:set var="baseURL" value="${fn:replace(req.requestURL, req.requestURI, '')}" />
<c:set var="params" value="${requestScope['javax.servlet.forward.query_string']}"/>
<c:set var="requestPath" value="${requestScope['javax.servlet.forward.request_uri']}"/>
<c:set var="pageUrl" value="${ baseURL }${ requestPath }${ not empty params?'?'+=params:'' }"/>