我的课程X有字段:
@DateTimeFormat(pattern = "dd/MM/yyyy HH:mm")
private Date updateDate;
我有html with method =" post"
<form class="form-horizontal"
th:action="@{/x/save}" method="post">
我想获取当前日期并通过POST发送到updateDate字段:
<span th:text="${#dates.format(#dates.createNow(), 'dd/MM/yyyy HH:mm')}"
th:value="${#dates.format(#dates.createNow(), 'dd/MM/yyyy HH:mm')}"
th:id="*{updateDate}" th:name="*{updateDate}">
</span>
问题是日期不会通过POST发送到updateDate
字段。我在浏览器中通过Developer Tools
进行了检查。
我不能只在这里使用th:field
,因为我想要当前日期,我通过以下方式获取它:
th:value="${#dates.format(#dates.createNow(), 'dd/MM/yyyy HH:mm')}"
像这样,它也不是通过POST发送的:
<input th:text="${#dates.format(#dates.createNow(), 'dd/MM/yyyy HH:mm')}"
th:value="${#dates.format(#dates.createNow(), 'dd/MM/yyyy HH:mm')}"
th:id="${updateDate}" th:name="${updateDate}"/>
但是我在html中看到了正确的日期。
解决方案:
<input name="updateDate" id="updateDate"
th:value="${#dates.format(#dates.createNow() , 'dd/MM/yyyy HH:mm')}"/>
请注意:
这不是完美的解决方案:
答案 0 :(得分:3)
如果您不想使用Spring绑定到您的输入,只需使用纯HTML标识和名称属性。此外,您不能使用span元素发布数据。您必须使用输入标记。例如<input name="updateDate" id="updateDate" th:value="${#dates.format(#dates.createNow() , 'dd/MMM/yyyy HH:mm')}"/>
更好的方法是在控制器中设置updateDate值并使用Spring数据绑定语法。
<input type="text" th:field="*{updateDate}"/>