我是mvc spring的新手,我有一些来自互联网的代码,如下所示:
@RequestMapping(value = "/newContact", method = RequestMethod.GET)
public ModelAndView newContact(ModelAndView model) {
Contact newContact = new Contact();
model.addObject("contact", newContact);
model.setViewName("ContactForm");
return model;
}
@RequestMapping(value = "/saveContact", method = RequestMethod.POST)
public ModelAndView saveContact(@ModelAttribute Contact contact) {
contactDAO.saveOrUpdate(contact);
return new ModelAndView("redirect:/");
}
@RequestMapping(value = "/deleteContact", method = RequestMethod.GET)
public ModelAndView deleteContact(HttpServletRequest request) {
int contactId = Integer.parseInt(request.getParameter("id"));
contactDAO.delete(contactId);
return new ModelAndView("redirect:/");
}
我的问题是, 在任何情况下使用和使用@ ModelAttribute,ModelAndView模式和HttpServletRequest请求的目的是什么? 谢谢你。
答案 0 :(得分:0)
请检查https://stackoverflow.com/a/33422321/3530898。我认为ModelAttribute通常用于表单传输对象(即其字段包含表单数据的bean类),当您想要在控制器的单个方法中设置视图名称和模型对象时,使用ModelAndView。 ModelAndView和Model都在内部使用HttpServletRequest,Spring在HttpServletRequest上添加了包装类,使开发人员更容易开发。但有时你需要HttpServletRequest类,当你想在Ajax调用等中捕获查询参数时