Я использую lombok, чтобы опустить геттер и сеттер Java-бина.
Вот пример из книги «Весна в действии 5 издание»
боб Java:
@Data
public class Taco {
@Size(min=1, message="You must choose at least 1 ingredient")
private List<String> ingredients;
}
Контроллер:
@PostMapping
public String processDesign(@Valid @ModelAttribute("design") Taco design, Errors errors, Model model) {
if (errors.hasErrors()) {
return "design";
}
System.out.println(design.getIngredients());
return "redirect:/orders/current";
}
Представленный вид:
<form method="POST">
<input name="ingredients" type="checkbox" value="FLTO">
<span>Flour Tortilla</span><br>
<input name="ingredients" type="checkbox" value="GRBF">
<span>Ground Beef</span><br>
</form>
Когда я отправляю форму и флажок не установлен, проверка не работает, в контроллере errors.hasErrors()
ложно, а design.getIngredients()
равно null
Затем я меняю код в Java-бине:
private List<String> ingredients=new ArrayList<>();
проверка работает, пользователь получит сообщение: «Вы должны выбрать хотя бы 1 ингредиент»
Но мой вопрос: нужно ли создавать экземпляр поля, даже если я уже использовал lombok, особенно для ссылочного поля? Есть ли способ использовать аннотацию для этого?