【问题标题】:Scriptlet error: The method getFullYear()/toLocaleDateString() is undefined for the type DateScriptlet 错误:方法 getFullYear()/toLocaleDateString() 未为 Date 类型定义
【发布时间】:2021-02-22 11:54:05
【问题描述】:

我目前正在尝试使用 scriptlet 将当前年份或语言环境日期输入到页面标题和描述中,如下所示。在控制台上,我收到标题中提到的错误,导致“org.apache.jasper.JasperException:无法为 JSP 编译类”错误。

<tiles:param name="pageTitle">something something <%=(new java.util.Date()).getFullYear()%> something something </tiles:param>
<tiles:param name="pageDescription">Last Update: <%=(new java.util.Date()).toLocaleDateString()%>. more something something</tiles:param>

我做错了什么,我该如何解决?我已经在页面的开头导入了 java 类 Date :

&lt;%@ page import="java.util.Date" %&gt;

【问题讨论】:

  • 这些方法用于 JavaScript Date 类,Java Date 类是完全不同的东西。 Java 和 JavaScript 是完全不同的编程语言。
  • @greg-449 天哪,我一直在混合它们!感谢您指出这一点。这可能是一件基本的事情,但我将如何在这些标签中使用 JS 日期? 似乎也不对。
  • 我不是 JSP 专家,但我的理解是

标签: javascript eclipse jsp scriptlet


【解决方案1】:

您可以尝试使用 JSTL 打印带有某些格式的日期。

  <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
  <%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt" %>
  
      <c:set var = "now" value = "<% = new java.util.Date()%>" />
      <p>Formatted Date (1): <fmt:formatDate type = "time" value = "${now}" /></p>
      <p>Formatted Date (2): <fmt:formatDate type = "date" value = "${now}" /></p>
      <p>Formatted Date (3): <fmt:formatDate type = "both" value = "${now}" /></p>
      <p>Formatted Date (4): <fmt:formatDate type = "both" dateStyle = "short" timeStyle = "short" value = "${now}" /></p>
      <p>Formatted Date (5): <fmt:formatDate type = "both" dateStyle = "medium" timeStyle = "medium" value = "${now}" /></p>
      <p>Formatted Date (6): <fmt:formatDate type = "both" dateStyle = "long" timeStyle = "long" value = "${now}" /></p>
      <p>Formatted Date (7): <fmt:formatDate pattern = "yyyy-MM-dd" value = "${now}" /></p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-02
    • 2013-05-11
    • 2014-05-25
    相关资源
    最近更新 更多