深入SpringMVC组件来发
1、控制器接收各类请求参数
接收普通请求参数:通过参数名称与HTTP请求参数保持一致来获取参数
使用@RequestParam注解获取参数:参数名称不一致时,通过该注解可以;@RequestParam("role_name")String roleName
使用url传递参数:@RequestMapping和@PathVariable两个注解共同协作完成
传递JSON参数:JSON参数需要和对应参数的POJO保持一致并转成字符串,@RequestBody接收参数
表单序列化:参数传递变为roleName=xxx&¬e=xxx,可直接获取参数
重定向:使用addFlashAttribute方法保存数据模型,返回重定向字符串或视图,保存到session中,执行重定向,读取数据
并清除session保存的数据,调用重定向指定方法或者页面。
2、保存并获取属性参数(http的request对象或session对象)
@RequestAttribute获取HTTP的请求对象属性值,用来传递给控制器的参数
@SessionAttribute在HTTP的会话对象属性值中,用来传递给控制器的参数
@SessionAttributes可配置字符串数组,其对应数据模型的键值对,保存在session
@CookieValue从Cookie获取对应的请求信息
@RequestHeader从HTTP请求头获取信息
3、拦截器
实现接口HandlerInterceptorAdapter,重写preHandle(),postHandle(),afterCompletion()。
拦截器的执行流程:前置、返回true进入处理器、后置、视图解析和渲染视图、完成方法
返回false不执行后续的。
4、数据模型
ModelAndView、Model、ModelMap都可作为参数
5、视图和视图解析器
视图必须实现View接口(注意getContentType和render方法)
当控制器返回ModelAndView时,视图解析器会解析,然后将数据模型传递给render方法,就可以渲染视图了。