5

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

我收到此错误:

org.apache.jasper.JasperException: /WEB-INF/pages/calendarEntry.jsp (line: 5, column: 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 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 依赖项

<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

4

7 回答 7

15

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

使用 fmt:formatDate JSP 格式化日期

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

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

对比

  <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
于 2016-02-23T23:28:57.210 回答
4
<fmt:formatDate value="date" var="${eventDate}" />

开关值和变量。

<fmt:formatDate var="date" value="${eventDate}" />
于 2014-02-21T07:50:22.870 回答
3

谢谢大家的帮助。我意识到这是我的一个愚蠢的错误..

代替

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

它应该是

<fmt:formatDate type="date" value="${calendarEntry.date}"
于 2014-02-22T04:31:33.390 回答
0

您应该将属性var更改为pattern,您可以尝试如下:

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

你可以根据自己的变化改变pattern的值,它与valuepattern的顺序无关

于 2014-02-21T08:02:04.840 回答
0

在 netbeans 中,它现在不会自动创建 web.xml 文件。(以前在 j2ee 中它是创建的。在某些情况下是可选的。我在使用 jstl 删除属性时遇到了同样的问题,在创建 web.xml 文件后问题不见了。但更正的是一个新项目

于 2016-12-20T11:10:58.650 回答
0
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

将以上内容更改为:

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
于 2020-08-07T05:50:48.800 回答
-1

我有类似的问题。我将 Tomcat 版本更改为 - apache-tomcat-7.0.39 而不是来自 SERVER- Runtime Environment 的 -apache-tomcat-7.0.54

于 2017-09-04T07:12:00.217 回答