JSP: включить не работает с языком выражений (JSP версии 2.5, EL включен) - PullRequest
3 голосов
/ 17 августа 2010

Я прочитал: Язык выражений в JSP не работает но это немного отличается.

Использование EL для ссылки на файл работает нормально, как показано ниже.

   <link rel="stylesheet" type="text/css" 
href="${pageContext.request.contextPath}/css/global.css"/>

Однако при попытке использовать тег JSP include с выражением EL:

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

Возвращает http 500.

org.apache.jasper.JasperException: javax.servlet.ServletException: File &quot;/head_first/header.jsp&quot; not found
 org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:527)
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401)
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

Я также убедился, что EL включен тоже.

<%@ page isELIgnored ="false" %>

Моя версия tomcat - 6.0, а web.xml определяет, что JSP - 2.5

.
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5">

Кто-нибудь знает, почему EL не работает ТОЛЬКО при использовании в теге jsp: include?

1 Ответ

6 голосов
/ 17 августа 2010

EL работает нормально.Путь к контексту напечатан.Но вам не нужен префикс jsp:include page с контекстным путем.Это уже неявно относительно пути контекста.А именно, невозможно включить файлы из других контекстов.Ваш подход в конечном итоге приведёт к включению файла из /head_first/head_first/include.jsp, который, таким образом, не существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...