如何设置百里香通:来自其他变量的字段值

Tob*_*bou 34 html spring spring-mvc thymeleaf

我有一个简单的文本输入字段,我必须从一个对象设置默认值并将其最终值保存在其他对象中.以下代码无效.

<div th:object="${form}">
    <input class="form-control"
           type="text"
           th:value="${client.name}"  //this line is ignored
           th:field="*{clientName}"/>
</div>
Run Code Online (Sandbox Code Playgroud)

form是DTO对象,client是来自数据库的Entity对象.

解决这种情况的正确方法是什么?

不工作我的意思是 - 假设初始值是client.name ="Foo"和form.clientName = null.我需要输入字段显示值为"Foo",并在表单提交form.clientName值后变为"Foo".但是输入字段没有显示任何内容,并且在提交form.clientName值仍然为null;

如果有人有兴趣,请使用以下结构解决此问题(在另一个问题中找到答案).

th:attr="value = ${client.name}"
Run Code Online (Sandbox Code Playgroud)

New*_*bie 44

你可以接近这种方法.

而不是使用th:field使用HTML idname.使用设定值th:value

<input class="form-control"
           type="text"
           th:value="${client.name}" id="clientName" name="clientName" />
Run Code Online (Sandbox Code Playgroud)

希望对你有帮助

  • 指出这将忽略bean绑定. (6认同)
  • 所以总的来说,这是不该做的事情。 (2认同)

Tam*_*amb 8

正确的做法是使用预处理

例如

th:field="*{__${myVar}__}"