Как получить прямую информацию в JSTL / EL, являясь атрибутом, содержащим точку - PullRequest
4 голосов
/ 17 декабря 2010

Этот вопрос показывает, что при пересылке информация в объекте запроса обновляется в соответствии с новым файлом. Так, например, когда:

пользовательские запросы "/ abc" -> сервлет вызывается> перенаправляет в /def.jsp

Тогда в def.jsp ${request.requestURI} будет /def.jsp, а не /abc. Если кто-то хочет получить исходный запрошенный URI (или любую другую информацию, такую ​​как путь к сервлету и т. Д.):

request.getAttribute("javax.servlet.forward.request_uri");

Все хорошо, но как я могу получить доступ к этому через JSTL. ${javax.servlet.forward.request_uri} не работает. Точка считается оператором, а не частью имени. В других случаях это решается заключением имени в квадратные скобки и его цитированием. Но здесь нет объекта карты, и ${['javax.servlet...']} не работает.

Итак, как?

(я могу поместить его в атрибут «без точки» в сервлете, но это обходной путь)

1 Ответ

16 голосов
/ 17 декабря 2010

Насколько я помню, это примерно так:

${requestScope["javax.servlet.forward.request_uri"]}
...