web-dev-qa-db-ja.com

thymeleaf:th:fieldを使用する場合、th:valueは無視されます

ユーザーデータを編集したいフォームがあります。したがって、すでに保存されているデータはth:valueとして入力され、送信後、Spring検証で検証し、間違った入力でフォームを返却したいと考えています。入力フィールドにユーザーによる入力の値を設定しますが、代わりに常に保存された入力が表示されます。

入力フィールドは次のようになります

<input type="text" th:value="${product.name}" th:field="*{name}" th:errorclass="fieldError"/>

フォームが初めて読み込まれる場合、入力フィールドには既に保存されているデータの値が含まれているはずです。

送信後に読み込まれ、検証エラーが発生した場合、入力フィールドにはユーザーの入力値が含まれているはずです。

その方法はありますか?

ありがとう!

10
Raphael

属性th:fieldは、属性valueidおよびnameinputタグ。

代わりに、プレーンなth:idth:valueおよびth:nameth:fieldを使用しない。その後、あなたはあなたが望んだものを手に入れます。

その後、次のようになります。

<input type="text" th:value="${product.name}" th:name="name" th:id="name" th:errorclass="fieldError"/>

同様の答えはここにあります: thymeleaf th:他の変数からフィールド値を設定する方法

17
Ostap Gonchar

Th:fieldまたはvalueを使用して、IDと名前に問題はありません。 th:fieldを使用する場合、次のように記述できます:

<input type="text" th:field="${product.name}" th:value="${product.name}" "th:errorclass="fieldError"/>
1
gf jiang