我有一个简单的文本输入字段,我必须从一个对象设置默认值并将其最终值保存在另一个对象中。以下代码不起作用。
<div th:object="${form}">
<input class="form-control"
type="text"
th:value="${client.name}" //this line is ignored
th:field="*{clientName}"/>
</div>
form 是 DTO 对象, client 是数据库中的 Entity 对象。
解决这种情况的正确方法是什么?
我的意思是不工作-假设初始值为client.name =“Foo”和form.clientName = null。我需要输入字段显示值为“Foo”,并且在表单提交后 form.clientName 值变为“Foo”。但是输入字段不显示任何内容,并且在提交 form.clientName 值仍然为空;
如果有人感兴趣,请使用以下结构解决此问题(在另一个问题中找到答案)。
th:attr="value = ${client.name}"
原文由 Tobou 发布,翻译遵循 CC BY-SA 4.0 许可协议
好的,如果我正确理解了这个问题,您正在尝试为变量分配一个预定值,然后在 Thymeleaf 呈现该变量时将该变量填充到 html 表单中。如果这是您要问的,我也为此苦苦挣扎了几天,在阅读您的帖子后才找到答案,并认为我会分享。
我正在做的(希望这对某人有所帮助)试图自动为我的博客文章的 id 分配一个值,以便当用户提交它时,博客文章会自动获取我想要分配的 ID。
\*\*\* 我遇到的问题\*\*\* 当我像这样分配 id 变量 { th:field=”*{id}” } 时,表单输入框中的输出始终为“0”。所以我尝试了各种不同的方法来解决这个问题,比如添加一个 th:value 和一个 th:name,这总是导致大胖“0”。
所以,经过多次敲打我的脑袋,并在论坛上进行搜索,我发现了这个小小的快乐。
https://frontbackend.com/thymeleaf/hidden-inputs-in-thymeleaf
虽然它没有解决我的具体问题,但答案就在那里。我不会让你自己读,因为我讨厌那样。
\*\*\*\* 答案 ***
{在 HTML 表单中}
{在控制器中}
@GetMapping(“/”) public String display(Model model) {
\*\*\* 结论 \*\*\* 我将我的代码缩减为您需要查看的内容(在所有仇恨者开始之前)。这是我的解决方案,它完美无缺。不,我们都知道如何解决问题
干杯! Java埃迪