pageContext.request.contextPath не работает - PullRequest
1 голос
/ 04 мая 2011

Я использую Tomcat 6.0.32 и пытаюсь включить файл JSP в другой, но каким-то образом файл не может быть найден (да, файл существует).Вот структура файла и код:

<jsp:include page="${pageContext.request.contextPath}/templates/header.jsp">
</jsp:include>

WebContent
- folder/caller.jsp
- templates/header.jsp

Однако, если я использую $ {pageContext.request.contextPath} вне этого, чтобы проверить, правильно ли он выводит, он работает, кто-нибудь знает, почему это происходит

Ответы [ 2 ]

5 голосов
/ 04 мая 2011

Я даже не уверен, что вы можете использовать переменные времени выполнения внутри <jsp:include>, но другая проблема заключается в том, что contextPath ссылается на контекст URL-адреса, запрашиваемого с сервера, и не обязательно соответствует вашей файловой системе.

Почему бы вам просто не использовать <jsp:include page="templates/header.jsp">?

1 голос
/ 28 октября 2011

Я полностью согласен с приведенным выше ответом, однако, если вам придется использовать его таким образом, то приведенный ниже код будет работать

<c:set var="myContext" value="${pageContext.request.contextPath}"/>
<jsp:include page="${myContext}/templates/header.jsp"> </jsp:include> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...