数据处理
1.提交数据的处理
a)提交的域名称和处理方法的参数一致即可
//处理方法: @RequestMapping("/hello") public String hello(String name){ System.out.println(name); return "index.jsp"; }
b) 提交的域名称和处理方法的参数不一致
提交的数据
//处理方法: @RequestMapping("/hello") /* * @RequestParam("uname")uname是提交的域的名称 * */ public String hello(@RequestParam("uname")String name){ System.out.println(name); return "index.jsp"; }
c)提交是一个对象。要求提交的form域名和对象的属性名一致,参数使用对象即可
//处理方法: @RequestMapping("/person") public String person(Person p){ System.out.println(p); return "index.jsp"; } //实体类: public class Person { private int ind; private String name; private String pwd; //省略get/set方法 }
2.将数据显示到view层
第一种通过ModelAndView--需要视图解析器
public class HelloController implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception { // TODO Auto-generated method stub ModelAndView mav = new ModelAndView(); //封装要显示到视图中的数据 mav.addObject("msg", "hello springmvc"); //视图名 mav.setViewName("hello"); return mav; } }
第二种通过ModelMap来实现--不需要视图解析器
ModelMap需要作为处理方法的参数
@RequestMapping("/hello") 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的区别:
相同点:都可以将数据封装显示到view层页面中
不同点:ModelAndView可以指定跳转的视图,而ModelMap不能。ModelAndView需要视图解析器,ModelMap不需要配置