在 Thymeleaf 日期输入中设置 th:value?

Set th:value in Thymeleaf date input?

我使用 Thymeleaf,我想在用户编辑之前向用户显示 现有 日期值,如果他们不想编辑它,他们可以离开照原样。我一直在尝试设置日期输入值,但它不起作用。

我尝试了什么:

艺术家:

private Date dateDebut;

控制器:

String dateDebut = Artist.getDateDebut().toString();
model.addAttribute("dateDebut", dateDebut);

查看:

<input type="date" class="form-control" name="dateDebut" th:value="${dateDebut}" />

但是这不起作用。它仍然向我显示这样的日期输入:https://i.stack.imgur.com/MdZIw.png 而不是我要显示的设置值。

我试过使用 Bootstrap 日期选择器,但它也没有用。有什么建议吗?

  1. 如果您使用type="date",那么浏览器会选择日期格式。如果要自己格式化,就得用type="text".

  2. th:value="${dateDebut}" 不会尊重您的 @DateTimeFormat 注释。如果您希望 thymeleaf 以该格式输出,您应该使用 double-brace 语法——例如 th:value="${{dateDebut}}"——或者使用 th:field(这意味着其他更改)。在这种情况下,前者可能更好。

编辑:

如果要使用type="date",请保留注释@DateTimeFormat (pattern="yyyy-MM-dd")并使用双括号:

<input type="date" class="form-control" name="dateDebut" th:value="${{dateDebut}}" />

或者,您可以使用日期格式化函数:

<input type="date" class="form-control" name="dateDebut" th:value="${#dates.format(dateDebut, 'yyyy-MM-dd')}" />