Выбор Thymeleaf устанавливает значение null

Я пытаюсь установить единицу измерения ингредиента, но он устанавливает их идентификатор равным нулю. Отправляемый мной объект представляет собой оболочку, содержащую объекты IngredientsCommand.

<select th:field = "*{ingredientsWrapper[__${iter.index}__].unitOfMeasure}" name = "unitOfMeasure.id">
   <option value = "NULL"></option>
   <option th:each = "unit : ${unitOfMeasureSet}"
        th:value = "${unit.id}"
        th:text = "${unit.unitName}">Test
   </option>
</select>

>

@Getter @Setter
@NoArgsConstructor
public class IngredientsCommand {

private Long Id;
private String ingredientName;
private Long recipeId;
private BigDecimal amount;
private String countryOfOrigin;
private BigDecimal ingredientCost;
private RecipeCommand recipe;
private UnitOfMeasureCommand unitOfMeasure;
}

>

@Getter @Setter
@NoArgsConstructor
public class UnitOfMeasureCommand {

private Long id;
private String unitName;

}

Возможный дубликат Идентификатор нулевого объекта контроллера Spring

Teo 30.03.2018 19:51
Оно имеет. Это командный объект. Он будет преобразован. Единицы уже добавлены.
Vio Ariton 30.03.2018 20:02
1
2
692
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я не подключал преобразователь единиц измерения автоматически, когда он преобразует команду в ингредиент. Я также перешел с th:field = "*{ingredientsWrapper[__${iter.index}__].unitOfMeasure}" на th:field = "*{ingredientsWrapper[__${iter.index}__].unitOfMeasure.id}", и теперь он работает. Спасибо за помощь.

Другие вопросы по теме