- 当control返回以 redirect: 为前缀的字符串时,会进行重定向处理,原理还是同之前的ModelAndView;以forward: 为前缀的则表示转发。
- 时间类型格式化注解:@DateTimeFormat(pattern=“yyyy-MM-dd”);浮点型数据格式化注解:@NumberFormat(pattern="#,###.#")
- JSR 303 验证
- 使用JSR 303验证标准
- 加入hibernate validator 验证框架的jar包
- 在springMVC配置文件中加入<mvc: annotation-driven />
- 在bean的属性上添加对应的注解
- 在目标方法bean类型的前面添加@Valid 注解
-
通过BindErrorType 或 Errors 类型来获取JSR 303 验证错误信息,需要注意的是,方法中需校验的bean对象和其绑定结果对象或错误对象是成对出现的,它们之间不允许声明其他的入参
-
@RsponseBody 注解
将数据直接转换为相应的格式,如json,xml,详情参考博客
-
国际化
- 在页面上根据浏览器的语言设置情况对文本(不是内容),时间,数值等进行本地化处理
- 可以在bean中获取国际化资源文件Locale对应的消息
- 可以通过超链接切换Locale,而不再依赖浏览器语言设置情况
- 文件上传
springMVC通过MultipartResolver 接口实现文件上传功能,提供默认的实现类CommonsMultipartResolver,通过MultipartFile 对象来获取文件的信息
- 拦截器
实现步骤:
-
实现HandlerInterceptor 接口
-
将拦截器注册进容器
-
在 <mvc: interceptors>中直接配置拦截器
<bean clsss="拦截器全限定类名">
-
在 <mvc: interceptors>中配置<mvc: interceptor>子标签:
<mvc: interceptor> <mvc: mapping path="指定作用的目标路径"> <bean clsss="拦截器全限定类名"> <mvc: interceptor>
<mvc: interceptor> 中也有配置排除目标路径的属性
-
HandlerInterceptor 接口 的方法
- preHandle:
- 在目标方法(即@RequestMaping 注解的方法)执行之前被调用
- 若返回值为false 则后续的拦截器和目标方法不会被执行
- postHandle:
- 在目标方法调用之后,页面渲染之前被调用
- 可以对请求域属性或视图做修改
- afterCompletion:
- 页面渲染之后被调用
- 可以释放资源
多个拦截器的执行顺序:
- 默认情况下,preHandle 方法按拦截器声明的正序执行,postHandle 与 afterCompletion 方法按拦截器声明的反序执行
- 图示:
- 异常处理