首页 > 编程语言 > 详细

统一处理springmvc的Valid验证

时间:2015-11-28 02:08:49      阅读:444      评论:0      收藏:0      [点我收藏+]

对于后端的参数校验,我们一直在强调的验证规则,提示信息的重用。这不,springmvc通过集成Valid最大程序减少了我们的工作量。其实后端的参数过滤,是分几种请求来源的。每种的处理都不太一样,但是我们如果能重用验证规则,提示信息,那就很强大了。
1 常用的表单提交,需要页面返回错误信息
2 AJAX提交,需要JSON格式返回,或者XML
3 接口调用,同样需要对应的数据格式返回
对于这3类请求,我今天讲的是第3种,是可以重用第1种的资源和验证规则。它就是ControllerAdvice(控制建议)

?1?/**
?2??*?Indicates?the?annotated?class?assists?a?"Controller".
?3??*
?4??*?<p>Serves?as?a?specialization?of?{@link?Component?@Component},?allowing?for
?5??*?implementation?classes?to?be?autodetected?through?classpath?scanning.
?6??*
?7??*?<p>It?is?typically?used?to?define?{@link?ExceptionHandler?@ExceptionHandler},
?8??*?{@link?InitBinder?@InitBinder},?and?{@link?ModelAttribute?@ModelAttribute}
?9??*?methods?that?apply?to?all?{@link?RequestMapping?@RequestMapping}?methods.
10??*
11??*?@author?Rossen?Stoyanchev
12??*?@since?3.2
13??*/

中文的大概意思就是:
A 定义异常处理
B 初始化binder,比如一些类型转换,自定义验证等等
C 设置ModelAttribute的值
看到没有,异常处理。刚好spring有提供?
MethodArgumentNotValidException这个异常,而这个异常就是处理参数验证不通过会抛出的。
哈哈哈,太好了。这样,我就可以在这里面,去封装Valid的异常?
如图bubuko.com,布布扣?
里面的processValidationError方法会处理具体异常的返回值并以JSON输出,大功告成,下周再贴出整体代码链接。
当这样处理之后,我们的resetful的接口只用处理真正的业务,完全不用做常用的参数检查。

统一处理springmvc的Valid验证

原文:http://zuxiong.iteye.com/blog/2259819

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!