我有一个表单,我想编辑一些用户数据。 因此,已经存储的数据被放置为:值并且在发送之后我使用spring验证进行验证并且想要在错误的输入上返回表单。我希望输入字段具有用户输入的值,但它总是为我提供存储的输入。
输入字段的外观如何
<input type="text" th:value="${product.name}" th:field="*{name}" th:errorclass="fieldError"/>
如果首次加载表单,则输入字段应具有已存储数据的值。
如果在提交后加载并且出现验证错误,则输入字段应具有用户输入的值。
有办法吗?
谢谢!
答案 0 :(得分:16)
属性 th:field 将替换输入<中值, id 和名称的属性/ strong> tag。
相反,使用普通 th:id , th:value 和 th:name 而不使用 th:field 。然后你会得到你想要的东西。
然后它看起来像:
<input type="text" th:value="${product.name}" th:name="name" th:id="name" th:errorclass="fieldError"/>
类似的答案在这里:How to set thymeleaf th:field value from other variable
答案 1 :(得分:2)
因为属性th:field是th:name和th:value的组合 因此,要么使用此:
<input type="text" th:value="${product.name}" th:name="name" th:errorclass="fieldError"/>
或者这个:
<input type="text" th:field="*{name}" "th:errorclass="fieldError"/>
答案 2 :(得分:1)
使用th:字段或值,id和name都可以。如果你使用th:field,你可以这样写:
<input type="text" th:field="${product.name}" th:value="${product.name}" "th:errorclass="fieldError"/>
答案 3 :(得分:0)
如果验证错误后输入值错误,则您的控制器中有错误(您将错误的值设置为 *{name})。