У меня вопрос по аннотации @ModelAttribute в параметрах метода. Это из книги «Весна в действии 5». src / main https://github.com/habuma/spring-in-action-5-samples/tree/master/ch03/tacos-jpa/src/main/java/tacos
ресурсы / шаблоны https://github.com/habuma/spring-in-action-5-samples/tree/master/ch03/tacos-jpa/src/main/resources/templates
@Controller
@RequestMapping("/design")
@SessionAttributes("order")
public class DesignTacoController {
@ModelAttribute(name = "order")
public Order order() {
return new Order();
}
@ModelAttribute(name = "taco")
public Taco taco() {
return new Taco();
}
@PostMapping
public String processDesign(@Valid Taco design,
Errors errors,
@ModelAttribute Order order) {
if (errors.hasErrors()) {
return "design";
}
Taco saved = designRepo.save(design);
order.addDesign(saved);
return "redirect:/orders/current";
}
}
цитата из книги:
"В методе processDesign () Параметр Order имеет значениеаннотирован @ModelAttribute, чтобы указать, что его значение должно исходить из модели и что Spring MVC не должен пытаться привязать к нему параметры запроса. "
Это часть, которую я не совсем понимаю, чтоавтор имел ввиду тут. Может быть, кто-то может помочь мне с примером или сказать другими словами, что здесь делает @ModelAttribute.
Я читал, что @ModelAttribute связывает весь объект Java (Order), поддерживает несколько параметров запроса, но в книге говорится, что мы используем@ModelAttribute "что Spring MVC не должен пытаться привязать к нему параметры запроса."