我对spring mvc很新,并且我一直在尝试使用“modelAttribute”在Spring中绑定嵌套对象而没有结果。
例如:我有这个类(这是一个硬编码的例子所以不要指望一个完美的语法,它只是让你理解这个问题)
public class car{
private int idCar;
private String brand;
private String color;
private Owner owner; //nested object
//getters and setters
}
然后我有一个get和一个post控制器..在get控制器中我做了这样的事情:
@RequestMapping(value="/showCar", method = RequestMethod.GET)
@ModelAttribute("car")
public ModelAndView showCar(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ModelAndView view = new ModelAndView("showCar");
Car car=new Car();
Owner owner=OwnerService.findOwnerById(1) //an owner that exists in the database
car.setOwner(owner); //setting Owner object to car object
view.addObject("car", car); // adding the car to the model
return view;
}
发布控制器(在我的jsp页面上提交后,我希望在我的帖子控制器中接收带有嵌套对象的汽车对象):
@RequestMapping(value="/showCar/process", method=RequestMethod.POST)
public ModelAndView addCar(@ModelAttribute("car") Car car, BindingResult result) {
car.getOwner(); //error, null.
}
我无法完成这项工作..将嵌套对象绑定到控制器的正确方法是什么?这是非常基本的东西,我认为任何已经使用spring一段时间的人必须知道,但由于某种原因,我没有找到任何绑定到控制器的嵌套对象的例子。
所以,如果有人能用一个小例子回答这个问题,那将是非常有用的。
感谢。