1、开始
1.1 作用
让pojo成为处理请求的控制器,无序实现任何接口
1.2 第一个案例
2、映射请求
###2.1 使用@RequestMapping映射请求
- 作用:为控制器指定可以处理哪些URL请求
- 可以修饰类和方法,顺序是:类路径+方法路径
- 属性:value,method,params,heads(分别表示请求URL,请求方法,请求参数及请求头的映射条件之间的关系)
- 注:默认是get请求,表单默认是post请求
- 注:支持通配符(?:匹配一个字符;*:匹配任意字符;**:匹配多层路径)
- method=RequestMethod.POST
- params={"username=","age!=10"}
- headers={"Accept-Language=en-US,zh;q=0.8"}
###2.2 接受请求参数
参考 三个属性:value,required(默认必须),defaultValue
- @PathVariable 获取路径中传递参数,支持Rest风格的URL
- @RequestParam 绑定请求参数值
- @RequestHeader 绑定请求报头的属性值
- @CookieValue("cookieName") 绑定请求中的Cookie值,常用的cookieName:JSESSIONID
- 使用POJO对象绑定请求参数名,这里会根据请求参数名和POJO属性进行自动匹配,自动为对象填充属性值。支持级联属性。
- servlet 原生API传入MVC的handler方法中
- 支持类型:HttpServletRequest,HttpServletResponse,HttpSession,java.security.Principal,Locale,InputStream,OutputStream,Reader,Writer
3、处理模型数据
四种方法:ModelAndView,Map及Model,@SessionAttributes,@ModelAttribute
3.1、ModelAndView
- 后端:返回值为ModelAndView,然后使用modelAndView.addObject("time",new Date());将值传入进去。
- 前端:通过${requestScope.time}获取
3.2、Map及Model
- 后端:将map作为形参传入,然后通过map.put添加需要传到前端的数据
- 前端:通过${requestScope.time}获取
3.3、@SessionAttributes
- 作用:可以放在session域中,实现多个请求共用一个模型属性数据。
- 在控制器中添加@SessionAttributes({"user",types={String.class}})
3.4、@ModelAttribute
- 作用:会在每个目标方法执行之前,被springMVC调用,
- 首先从数据库中将值取出来,放入map对象,然后再对表单参数进行赋值,然后进行update操作。
- 注:map时的键值需要和目标方法入参类型的第一个字母小写的字符串一致
4、视图和视图解析器
5、RestFul风格
6、表单标签&静态资源处理
7、数据转换&数据格式化&数据校验
8、其他
处理JSON格式数据、国际化和文件上传、拦截器、异常处理