之前用过struts2,学习了spring mvc之后,发现还是比struts2方便一些。
首先,web.xml配置
也可以配置url-pattern为 / ,这需要在spring配置中添加
然后是spring mvc配置文件:dispatcher-servlet.xml , 这个名称中的 dispatcher要和web.xml中DispatcherServlet的名称相同
然后是spring主配置文件:
启用注解
配置place holder,用来读取application configuration
数据源、sessionfactory、事务管理器,其中的
Cotroller的写法:
@Controller public class ContactsControllers { private ContactsDAO contactsDAO; @Autowired public void setContactsDAO(ContactsDAO contactsDAO) { this.contactsDAO = contactsDAO; } @Autowired private ContactFormValidator validator; @InitBinder public void initBinder(WebDataBinder binder) { SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); dateFormat.setLenient(false); binder.registerCustomEditor(Date.class, new CustomDateEditor( dateFormat, true)); } @RequestMapping("/viewAllContacts") public ModelAndView getAllContacts() { ModelAndView mav = new ModelAndView("showContacts"); List contacts = contactsDAO.getAllContacts(); mav.addObject("SEARCH_CONTACTS_RESULTS_KEY", contacts); return mav; } @RequestMapping(value = "/saveContact", method = RequestMethod.GET) public ModelAndView newuserForm() { ModelAndView mav = new ModelAndView("newContact"); Contact contact = new Contact(); mav.getModelMap().put("newContact", contact); return mav; } @RequestMapping(value = "/saveContact", method = RequestMethod.POST) public String create(@ModelAttribute("newContact") Contact contact, BindingResult result, SessionStatus status) { validator.validate(contact, result); if (result.hasErrors()) { return "newContact"; } contactsDAO.save(contact); status.setComplete(); return "redirect:viewAllContacts.do"; } @RequestMapping(value = "/updateContact", method = RequestMethod.GET) public ModelAndView edit(@RequestParam("id") Integer id) { ModelAndView mav = new ModelAndView("editContact"); Contact contact = contactsDAO.getById(id); mav.addObject("editContact", contact); return mav; } }