JSTL1.2 According to TLD or attribute directive in tag file, attribute var does not accept any expressions

sethu picture sethu · Feb 21, 2014 · Viewed 12.1k times · Source

I have been searching all over google for an answer and it doesn't work.

I am getting this error:

org.apache.jasper.JasperException: /WEB-INF/pages/calendarEntry.jsp (line: 5, column: 46) According to TLD or attribute directive in tag file, attribute var does not accept any expressions

Here's my jsp file

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
    <c:set var="eventDate" value="${calendarEntry.date}"/>
    <h1 class="page-header">Calendar Event on <fmt:formatDate value="date" var="${eventDate}" /></h1>

The error is happening at the last line. fmt

Web App declartion

<web-app version="3.1"
     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_3_1.xsd">

Maven Depedencies

<dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>javax.servlet.jsp-api</artifactId>
    <version>2.3.0</version>
    <scope>provided</scope>
</dependency>

Deployment Environment - Tomcat 8

Answer

Kimball Robinson picture Kimball Robinson · Feb 24, 2016

I had a similar problem, and this answer points to basically trying two different taglib declarations. Perhaps try both of them?

Format Date with fmt:formatDate JSP

Switching to the taglib you have declared in your jsp file solved my problem, ironically.

  <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

vs

  <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>