В настоящее время я хотел бы расширить свои знания о Spring MVC, поэтому я изучаю примеры веб-приложений, которые есть в дистрибутиве Spring. Я в основном проверяю заявление Petclinic.
В методе GET объект Pet был добавлен в атрибуты модели, чтобы JSP мог получить доступ к свойствам javabean. Я думаю, что понимаю это.
@Controller
@RequestMapping("/addPet.do")
@SessionAttributes("pet")
public class AddPetForm {
@RequestMapping(method = RequestMethod.GET)
public String setupForm(@RequestParam("ownerId") int ownerId, Model model) {
Owner owner = this.clinic.loadOwner(ownerId);
Pet pet = new Pet();
owner.addPet(pet);
model.addAttribute("pet", pet);
return "petForm";
}
@RequestMapping(method = RequestMethod.POST)
public String processSubmit(@ModelAttribute("pet") Pet pet, BindingResult result, SessionStatus status) {
new PetValidator().validate(pet, result);
if (result.hasErrors()) {
return "petForm";
}
else {
this.clinic.storePet(pet);
status.setComplete();
return "redirect:owner.do?ownerId=" + pet.getOwner().getId();
}
}
}
Но что я не могу понять, так это во время операции POST. Я смотрю на своего firebug и замечаю, что мои почтовые данные - это только те данные, которые были введены пользователем, что мне хорошо.
Но когда я проверяю данные на моем контроллере. Информация о владельце еще не завершена. Я смотрю на сгенерированный HTML из JSP, но не вижу скрытой информации об объекте Owner. Я не совсем уверен, где Spring собирает информацию об объекте владельца.
Означает ли это, что Spring кэширует объекты модели для каждого запроса потока?
Это для Spring MVC 2.5.