Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 604
Meow Avatar asked Mar 01 '26 15:03

Meow


1 Answers

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.

like image 171
BalusC Avatar answered Mar 04 '26 03:03

BalusC