首页 > 解决方案 > th:field 忽略占位符值并设置为 0

问题描述

th:field 忽略占位符值并将默认值设置为 0。

模型:

@Entity
public class Employer implements Serializable {

    @Id
    private int id;
...
}

看法:

<input type="text" placeholder="A1234" th:field="*{emloyer.id}">

正在生成什么:

<input type="text" placeholder="A1234" value="0" id="emloyer.id" name="emloyer.id">

我想了解为什么会生成 value=0 。如果我将 int 类型更改为 String 就可以了。我什至尝试了 value="" 和 th:value="",但它仍然生成为 value="0"。我知道我可以写 id="emloyer.id" name="emloyer.id" 而不是 th:field="*{emloyer.id}"。但我想了解它为什么会这样。我想显示占位符值而不是默认值。我怎样才能让它工作?

标签: thymeleaf

解决方案


默认情况下 anint的值为0。它不可能没有价值。您可以使用Integerset to null,然后 Thymeleaf 将使用value="".


推荐阅读