1.提交数据的处理
a)提交的域名称和参数名称一致
http://localhost:8080/foward/hello.do?name=zhangsan
处理方法
@RequestMapping(value = "/hello.do") public String hello(String name) { System.out.println(name); return "index.jsp"; }
b)如果域名称和参数名称不一致
http://localhost:8080/foward/hello.do?uname=zhangsan
处理方法
@RequestMapping(value = "/hello.do") public String hello(@RequestParam("uname")String name) { System.out.println(name); return "index.jsp"; }
c)提交的是一个对象
要求提交的表单域名和对象的属性名一致,参数使用对象即可
http://localhost:8080/foward/user.do?name=zhangsan&pwd=123
处理方法
@RequestMapping(value = "/user") public String hello(User user) { System.out.println(user); return "index.jsp"; }
2.将数据显示到UI层
第一种通过ModelAndView-需要视图解析器
@Override public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception { ModelAndView mv = new ModelAndView(); mv.setViewName("hello"); mv.addObject("msg", "first spring mvc app"); return mv; }
第二种通过ModelMap来实现-不需要视图解析器
@RequestMapping(value = "/hello.do") public String hello(String name, ModelMap mp) { System.out.println(name); //相当于request.setAttribute("name", name); mp.addAttribute("name", name); return "index.jsp"; }
ModelAndView和ModelMap的区别
相同点:均可以将数据封装显示到表现层
不同点:ModelAndView可以指定跳转的视图,而ModelMap不能,ModelMap不需要配置视图解析器