Meow
Meow

Reputation: 19071

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 &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)

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?

Upvotes: 3

Views: 7346

Answers (1)

BalusC
BalusC

Reputation: 1108802

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.

Upvotes: 6

Related Questions