Spring MVC(总结二)
- DispatcherServlet
- contextConfigLocation 默认位置为:/WEN-INF/servlet_name-servlet.xml
- *.html 或者 /
- HandlerMapping
- 非注解的有:BeanNameUrlHandlerMapping、SimpleUrlHandlerMapping等
- 注解的有:DefaultAnnotationHandlerMapping(默认的)、RequestMappingHandlerMapping
- HandlerAdapter
- 非注解的有:SimpleControllerHandlerAdapter、HttpRequestHandlerAdapter等
- 注解的有:AnnotationMethodHandlerAdapter(默认的)、RequestMappingHandlerAdapter
- <context:annotation-config>
注册4个bean,以便识别相应的注解:@Autowired、@ Resource、@ PostConstruct、@ PreDestroy、@PersistenceContext、@Required - <context:component-scan base-package="com.xxx...."/>
包扫描,可以代替上方的注解激活 - <mvc:annotation-driven>
mvc注解驱动 - @Autowired
实现自动装配,可去掉set()、可修饰成员变量、构造方法、方法
默认按类型匹配 - @Controller
标注类 - @RequestMapping
在类上的表示根路径
指定请求方式post get - Controller返回值
返回ModelAndView :分别设置Model和View
返回String:表示返回逻辑视图名,或者可以重定向、请求转发
返回void:可以通过形参request或response指定响应结果 -
参数绑定
形参接收,名称一致,自动绑定,pojo类型需要类中属性和页面中的name值一样
名称不一致时用注解@RequestParam -
@RequestParam参数绑定
其中value指定页面中的那个值 -
pojo绑定的乱码问题
post:web.xml中添加过滤器
修改tomcat的默认编码或对参数进行重新编码 - 自定义参数绑定
如:日期字符串转Date类型
定义转换器,实现Converter接口,然后配置 -
Validation校验
使用hibernate的validation校验框架
分组校验:写几个接口,没有方法 -
数据回显
使用@ModelAttribute注解
-
异常处理
定义一个全局异常处理器(要实现HandlerExceptionResolver接口),然后配置
-
文件上传
需要springmvc对multipart类型的数据进行解析 -
json数据交互
在适配器中配置 messageConverters属性为springmvc默认的json转换:MappingJacksonHttpMessgerConverter,需要加入jackson的包
@RequestBody:将json串转换为Java对象
@ResponseBody:将Java对象转换为json串输出 -
RESTful
-
静态资源请求
-
拦截器
自定义一个拦截器需要实现HandlerIntercepter接口,三个方法:
全局拦截器配置: