jsp:include not working with Expression Language (JSP version 2.5, EL enabled)
I've read: Expression Language in JSP not working but it's slightly different.
Using EL for referencing file works fine like the one below.
<link rel="stylesheet" type="text/css"
href="${pageContext.request.contextPath}/css/global.css"/>
However when try to use JSP include tag with EL expression:
<jsp:include page="${pageContext.request.contextPath}/header.jsp" />
This returns http 500.
org.apache.jasper.JasperException: javax.servlet.ServletException: File "/head_first/header.jsp" 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)
I also made sure to enable EL too.
<%@ page isELIgnored ="false" %>
My tomcat version is 6.0 and web.xml defines 开发者_运维知识库that JSP is 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">
Does anyone know why EL not working ONLY when used in jsp:include tag?
EL is working fine. The context path is been printed. But you don't need prefix jsp:include page
with the context path. It's already implicitly relative to the context path. It is namely not possible to include files from other contexts. Your approach will end up in a file from /head_first/head_first/include.jsp
being included which thus doesn't exist.
精彩评论