Spring MVC控制器使用
获取请求参数
模型驱动:Controller对象构造时Spring MVC会自动构建一个Model对象(Map类型),用于存放请求相关的值,比如原来在request.setAttribute()中的值。请求从WEb容器到底Controller会经过一系列的过滤器,实现如类型转换的功能。
具体提供以下几种方式获取请求相关参数的值:
- 直接属性取值@RequestParam
- 对象取值
- 获取请求URL中的值@PathVariable,获取请求头中的值@RequestHeader等
传递数据完成响应
ModelMap、Model、ModelAndView
- Spring MVC中用来存放数据的有ModelMap、Model、ModelAndView三个对象,其中ModelMap、Model由拦截器自动创建,在Controller的功能方法之前运行
- 也可以使用@ModelAttribute注解自定义取值及赋值方法
- ModelAndView对象是在Model的基础上添加了视图对象,需自行创建
- 赋值和取值能力ModelMap < Model < ModelAndView
使用容器对象
Spring MVC使用容器对象
- 在Spring MVC的Controller中使用容器对象(Request、Session等),可以分为耦合方式和非耦合方式
- 耦合方式即通过接口在Controller中直接获取容器对象
- 非耦合方式即通过Spring MVC提供的接口进行注入
Thymeleaf模板引擎
Spring MVC视图层解决方案
- Spring MVC支持多种View层解决方案
- 传统的JSP、FreeMarker等在组件化和去耦合上有明显缺点,目前Spring MVC流行使用Thymeleaf进行视图渲染
- Thymeleaf主要特点:数据和HTML的分离
<p th:text="${message}">He