1.提交数据的处理

  a)提交的域名名称和处理方法参数一致即可。

   提交的数据:

   

   处理方法:

@RequestMapping("/hello")	public String hello(String name){		System.out.println(name);		return "index.jsp";	}

  b)如果域名名称和处理方法参数不一致。

   提交的数据:

   

   处理方法:

@RequestMapping("/hello")public String hello(@RequestParam("uname")String name){    // @RequestParam("uname") uname是提交的域的名称	System.out.println(name);	return "index.jsp";}

  c)如果提交的是一个对象

   要求提交的表单域名和对象的属性名一致,参数使用对象即可。

   提交的数据:

   

   处理方法:

@RequestMapping("/user")	public String user(User user){		System.out.println(user);		return "index.jsp";	}

  实体类

public class User {	private int id;	private String name;	private String pwd;	//省略了get/set方法  }

2.将数据显示到UI层

  a)通过ModelAndView----需要视图解析器

@Overridepublic ModelAndView handleRequest(HttpServletRequest req, 	    HttpServletResponse resp) throws Exception {		ModelAndView mv = new ModelAndView();	//封装要显示到视图中的数据	//相当于req.setAttribute("msg","hello springmvc");	mv.addObject("msg","hello springmvc");	//视图名	mv.setViewName("index"); //WEB-INF/jsp/hello.jsp	return mv;    }

 b)通过ModelMap----不需要视图解析器

   ModelMap需要作为处理方法的参数

public String hello(@RequestParam("uname")String name,ModelMap model){	//相当于request.setAttribute("NAME",name);	model.addAttribute("NAME",name);	System.out.println(name);	return "index.jsp";    }

ModelAndView和ModelMap

相同点:

    都可以将数据封装显示表示层页面中。

不同点:

    ModelAndView可以指定跳转的视图,而ModelMap不能;

    ModelAndView需要视图解析器,而ModelMap不需要。