当前位置: 首页 > 知识库问答 >
问题:

Spring MVC:如何在JSP EL中显示格式化的日期值

师博
2023-03-14

下面是一个简单的值bean,用Spring新的(从3.0开始)方便的@dateTimeFormat注释进行了注释(据我所知,根据这个SO问题,它取代了前3.0对自定义propertyeditor的需求):

import java.time.LocalDate;
import org.springframework.format.annotation.DateTimeFormat;

public class Widget {
  private String name;

  @DateTimeFormat(pattern = "MM/dd/yyyy")
  private LocalDate created;

  // getters/setters excluded
}
${widget.created}

不幸的是,这将只显示localdate的默认tostring格式(yyyy-mm-dd格式)。我明白,如果我使用Spring的表单标记,日期将按需要显示:

<form:form commandName="widget">
  Widget created: <form:input path="created"/>
</form:form>

但是我想简单地显示格式化的日期字符串,而不使用spring表单标记。甚至是JSTL的fmt:formatdate标记。

来自Struts2,HttpServletRequest被包装在StrutsRequestWrapper中,这使得像这样的EL表达式能够实际询问OGNL值堆栈。所以我想知道spring是否提供了类似的东西来允许转换器执行?

编辑

我还意识到,当使用Spring的eval标记时,日期将根据@DateTimeFormat注释中定义的模式显示:

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<spring:eval expression="widget.created"/>

有趣的是,当使用自定义propertyeditor格式化日期时,此标记不调用propertyeditorgetastext方法,因此默认为文档中所述的dateformat.short。无论如何,我仍然想知道是否有一种方法可以在不使用标记的情况下实现日期格式化--只使用标准的JSP EL。

共有1个答案

法和硕
2023-03-14

您可以使用标记来提供这些格式,例如金钱、数据、时间和许多其他格式。

您可以在JSP上添加以下引用:<%@taglib prefix=“fmt”uri=“http://java.sun.com/JSP/jstl/fmt”%>

并使用以下格式:

以下为参考:

http://www.tutorialspoint.com/jsp/jstl_format_formatdate_tag.htm

 类似资料:
  • 当我发送日期时,Thymeleaf日期格式有问题。HTML在h3标记中正确地显示了日期,但不在datepicker的代码中,我不明白为什么.... 为什么它在一个地方用小时显示日期,而在另一个地方却正确地显示日期....输入type=“date”name=“birthdate”id=“birthdate”class=“窗体-控件边际-底部-20”value=“1932-10-10 00:00:00

  • 问题内容: 所以我有一个Date对象,我想创建一个方法,以便它以以下格式打印Date: 我怎么做?到目前为止,我只是对日期执行toString,它为我提供了我不需要的所有GMT信息和秒精度。我必须使用DateFormatter还是有更简单的方法来做到这一点? 编辑该标题后,将Java ME包含在标题中,并在发布了一些与原始问题正确的答案后添加标签。 问题答案: 您可以使用class设置日期格式。

  • 问题内容: 我正在使用bootstrap-datetimepicker和ISO8601 datetime格式,如其选项部分所述 在我的控制器中 它以(console.log)将数据发送到后端 并保存为数据库 在我的模板中 我在HTML上看到的输出为 但是根据Angular doc,它应该用于格式 我想念的是什么? 问题答案: 现在,我已经创建了一个过滤器 作为依赖项添加为 并用作 并将日期显示为

  • 问题内容: 我正在从数据库中提取各种帖子的日期。日期采用以下格式: 如何将这些日期重新格式化为更用户友好的格式: 假设从mysql数据库获取的日期存储在名为: 问题答案:

  • 问题内容: 我在用 : 输出为: 我如何只打印不带日期和INFO的消息? 问题答案: 使用系统属性更改SimpleFormatter的格式: 或在logging.properties中: 所有这些属性都以format方法记录。