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

如何在Thymeleaf日期格式中显示th:value?

钱哲茂
2023-03-14

当我发送日期时,Thymeleaf日期格式有问题。HTML在h3标记中正确地显示了日期,但不在datepicker的代码中,我不明白为什么....

<div> 
<label for="birthdate" th:text="#{editprofile.about4.birthdate}">Birth date</label> 
<label class="input"> 
<i class="icon-append fa fa-calendar"></i> 
<input type="date" name="date" id="birthdate" class="form-control margin-bottom-20" th:value="${#dates.format(profile2about2th.birthdate,'yyyy/MM/dd')}" th:field="*{birthdate}"> 
</input> 
</label> 
<h3 th:text="${#dates.format(profile2about2th.birthdate,'yyyy/MM/dd')}"></h3> 
</div> 

为什么它在一个地方用小时显示日期,而在另一个地方却正确地显示日期....输入type=“date”name=“birthdate”id=“birthdate”class=“窗体-控件边际-底部-20”value=“1932-10-10 00:00:00.0”

谢谢

共有1个答案

谢财
2023-03-14

th:fieldth:value不应用于同一标记。(th:field设置标记的nameidvalue属性。)您将看到,如果您停止th:field,您将获得正确的格式,但是表单将无法正确提交。在我看来,解决这个问题的方法是:

向控制器添加InitBinder方法,如下所示:

@Controller
public class WhateverController {
    .
    .
    .

    @InitBinder
    public void initBinder (WebDataBinder binder) {
        binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy/MM/dd"), true));
    }

    .
    .
    .
}

移除th:value。您的HTML应该如下所示:

<div> 
    <label for="birthdate" th:text="#{editprofile.about4.birthdate}">Birth date</label> 
    <label class="input"> 
        <i class="icon-append fa fa-calendar"></i> 
        <input type="date" name="date" id="birthdate" class="form-control margin-bottom-20" th:field="*{birthdate}" />
    </label> 

    <h3 th:text="${#dates.format(profile2about2th.birthdate,'yyyy/MM/dd')}"></h3> 
</div>

如果您希望全局绑定器适用于整个应用程序,而不仅仅是一个控制器,那么也有一些方法可以添加全局绑定器。

 类似资料:
  • 下面是一个简单的值bean,用Spring新的(从3.0开始)方便的注释进行了注释(据我所知,根据这个SO问题,它取代了前3.0对自定义的需求): 不幸的是,这将只显示的默认格式(格式)。我明白,如果我使用Spring的表单标记,日期将按需要显示: 但是我想简单地显示格式化的日期字符串,而不使用spring表单标记。甚至是JSTL的标记。 来自Struts2,被包装在中,这使得像这样的EL表达式能

  • 我刚到爪哇。我想以格式显示日期。当我使用函数打印日期时,它会给我带来我不想要的刺痛。假设我想打印今天的日期,它给我的是,但我想输出为

  • 我有一个带有REST API的Spring Boot应用程序,在一个请求对象中,我声明了一个字段,该字段应该以DDMMYYYY格式保存日期: 在Swagger UI中,请求正文中该字段的示例值始终显示如下(当前日期的格式为YYYY-MM-DD)。 我在pom.xml中有这样的内容: 如何使Swagger UI以DDMMYYYY格式显示示例日期?正如你在我上面的代码中看到的,我输入了@Paramet

  • 问题内容: 我正在尝试将MySQL数据库中的日期时间显示为PHP的iso 8601格式的字符串,但是它出了错。 2008年10月17日的输出格式为:1969-12-31T18:33:28-06:00这显然是不正确的(年份应该是2008年而不是1969年) 这是我正在使用的代码: 从我的MySQL数据库。 任何想法出什么事了吗? 问题答案: 的第二个参数是UNIX时间戳,而不是数据库时间戳字符串。

  • 日期显示方式 设定画面上[年月日]的排列顺序。

  • 本文向大家介绍如何在MySQL中更新日期格式?,包括了如何在MySQL中更新日期格式?的使用技巧和注意事项,需要的朋友参考一下 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是转换日期格式的查询- 这将产生以下输出-