我一直在谷歌搜索一个答案,但它不起作用。
我收到此错误:
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
答案 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