th: поле игнорирует значение заполнителя и устанавливает 0

#thymeleaf

#thymeleaf

Вопрос:

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">
  

Я хочу понять, почему генерируется значение = 0. Если я изменю тип int на String, все будет в порядке. Я даже пробовал value=»» и th:value=»», но оно все еще генерируется как value=»0″. Я знаю, что могу написать id=»emloyer.id » имя=»emloyer.id » вместо th:field=»*{emloyer.id }». Но я хочу понять, почему он так себя ведет.
Я хочу показать значение заполнителя вместо значения по умолчанию. Как я могу заставить это работать?

Ответ №1:

По умолчанию int значение 0 имеет an . Оно не может не иметь значения. Вы могли бы использовать Integer значение set to null , тогда Thymeleaf будет использовать value="" .

Комментарии:

1. Не могли бы вы быть более конкретными. Должен ли я писать следующим образом: @Id частный целочисленный идентификатор

2. @paro Да, это правильно. Если вы хотите, чтобы я был более конкретным, вам тоже нужно быть более конкретным. Знаете ли вы разницу между int и Integer в Java?