我有X类与字段:
@DateTimeFormat(pattern = "dd/MM/yyyy HH:mm")
private Date updateDate;
我有html与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')}"/>
谨防:
这不是完美的解决方案:
用户可以在发布前通过HTML更改时间来操纵时间。
用户可以在21.03上打开表单,等待24小时然后发送,时间仍然是21.03 ..
最佳答案
如果您不想使用Spring绑定到您的输入,只需使用纯HTML id和name属性。同样,您不能使用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}"/>