JSTL1.2根据标记文件中的TLD或属性指令,属性var不接受任何表达式

时间:2014-02-21 07:48:14

标签: java maven jstl jsp-tags tomcat8

我一直在谷歌搜索一个答案,但它不起作用。

我收到此错误:

org.apache.jasper.JasperException:/WEB-INF/pages/calendarEntry.jsp(第5行,第46列)根据标记文件中的TLD或属性指令,属性var不接受任何表达式

这是我的jsp文件

<%@ 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>

错误发生在最后一行。 FMT

Web App声明

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

部署环境 - Tomcat 8

7 个答案:

答案 0 :(得分:14)

我有一个类似的问题,这个答案指向基本上尝试两个不同的taglib声明。也许试试这两个?

Format Date with fmt:formatDate JSP

切换到你在jsp文件中声明的taglib解决了我的问题,具有讽刺意味。

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

VS

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

答案 1 :(得分:3)

<fmt:formatDate value="date" var="${eventDate}" />

切换值和变种

<fmt:formatDate var="date" value="${eventDate}" />

答案 2 :(得分:3)

感谢您帮助所有人。我意识到这是我身边的一个愚蠢的错误..

而不是

<fmt:formatDate value="date" var="${eventDate}" />

应该是

<fmt:formatDate type="date" value="${calendarEntry.date}"

答案 3 :(得分:0)

您应该将属性 var 更改为模式,您可以尝试以下操作:

<fmt:formatDate value="${eventDate}" pattern="yyyy-MM-dd HH:mm:ss"/>

您可以根据自己的值更改模式的值,它与模式 <的顺序无关/ p>

答案 4 :(得分:0)

在netbeans中,它现在不会自动创建一个web.xml文件。(之前在j2ee中创建了它。对于某些情况,它是可选的。我在创建web.xml时面临与jstl remove属性相同的问题文件问题已经消失。但是更正了一个是新项目

答案 5 :(得分:0)

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

将以上内容更改为:

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

答案 6 :(得分:-1)

我有类似的问题。我从SERVER-运行时环境更改了Tomcat版本到-apache-tomcat-7.0.39而不是-apache-tomcat-7.0.54