`
caicai1230231
  • 浏览: 23704 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

统一处理springmvc的Valid验证

阅读更多

对于后端的参数校验,我们一直在强调的验证规则,提示信息的重用。这不,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的异常 
如图 
里面的processValidationError方法会处理具体异常的返回值并以JSON输出,大功告成,下周再贴出整体代码链接。
当这样处理之后,我们的resetful的接口只用处理真正的业务,完全不用做常用的参数检查。

4
1
分享到:
评论

相关推荐

    SpringMVC入门很简单之数据验证

    Bean Validation 提供了一种统一的验证API,允许在Java beans上声明验证规则。在SpringMVC中,我们可以在模型类的属性上添加验证注解,如`@NotNull`, `@Size`, `@Pattern`等。例如,如果一个用户名字段不允许为空,...

    SpringMVC学习编程代码

    此外,SpringMVC支持数据绑定和验证,可以通过`@ModelAttribute`注解将请求参数绑定到Java对象,并利用`@Valid`和`Validator`接口进行数据验证。 对于异常处理,SpringMVC提供了`@ExceptionHandler`注解,可以用来...

    SpringMVC完整使用教程

    SpringMVC 提供了统一的异常处理机制,可以通过 `@ExceptionHandler` 注解定义异常处理器,或配置 `HandlerExceptionResolver` 实现类来集中处理异常。 ### 第 7 章 数据验证 SpringMVC 结合 Hibernate Validator ...

    springmvc验证需要的jar

    这些是关于Bean验证的Java标准,提供了统一的验证API。Spring MVC与Hibernate Validator结合使用,可以方便地在服务层或者控制器层对模型对象进行验证。 3. **Spring Validation Support**: Spring MVC框架提供...

    Springmvc数据验证6个详细包,hibernate-validator-5.1.3.Final.jar...

    开发者可以选择捕获这个异常,或者配置全局异常处理器来统一处理验证失败的情况。 综上所述,这个压缩包包含的内容可能涵盖了Spring MVC与Hibernate Validator的集成使用,以及一个具体的用户注册登录验证示例,...

    SpringMVC简单源码实现

    同时,如果使用了数据验证注解(如`@Valid`),SpringMVC还会进行数据验证。 3. **视图解析**: 处理器方法执行完成后,返回的通常是`ModelAndView`对象或`String`类型的结果。`ModelAndView`包含模型数据和视图名...

    SpringMVC 入门教程.pdf

    - 使用 `@Valid` 进行数据验证,结合 JSR-303/JSR-349 验证注解。 9. **拦截器(Interceptor)** - 拦截器可以对请求和响应进行预处理和后处理,例如登录检查、日志记录等。 10. **异常处理** - 可以通过 `@...

    SpringMVC例子代码小汇总

    通过@ControllerAdvice和@ExceptionHandler,可以全局捕获和处理异常,提供统一的错误页面或JSON响应。 **总结** SpringMVC以其强大的功能和高度的灵活性,成为Java Web开发中广泛使用的框架。通过理解并熟练掌握...

    SpringMVC3+jsp

    - `@Valid`注解配合JSR-303/JSR-349 Bean Validation进行表单验证。 - 自动将HTTP请求参数绑定到Controller方法的参数上,支持集合类型的参数绑定。 5. **异常处理**: - 可以使用`@ExceptionHandler`注解定义...

    SpringMvc_RestfullAPI

    5. **验证**:SpringMvc支持JSR-303/JSR-349 Bean Validation标准,可以通过`@Valid`和`@Validated`注解进行数据校验。 6. **拦截器**:`HandlerInterceptor`接口可以用来实现预处理和后处理逻辑,比如权限检查、...

    springMVC的demo

    通过学习这个示例,你可以了解到如何设置SpringMVC环境,创建控制器,处理请求,以及如何进行数据绑定、异常处理和验证。这对于理解和掌握SpringMVC的运作机制至关重要。在实际开发中,你可以根据需求调整和扩展这些...

    SpringMVC数据类型转换超详细介绍

    4. **自定义验证困难**:数据验证过程需要手动实现,缺乏统一的接口或框架支持。 #### 三、Spring 3之后的数据绑定改进 从Spring 3开始,SpringMVC引入了更为强大的数据绑定框架,解决了上述问题,并提供了更加...

    SpringMvc 第5讲

    通过@ControllerAdvice和@ExceptionHandler注解,我们可以全局地处理SpringMvc中的异常,提供统一的错误页面或JSON响应。 九、拦截器 SpringMvc的拦截器(Interceptor)允许我们在请求被Controller处理之前或之后...

    springMVC+hibernate数据库增删改查完整列子(包括所有的jar包)

    SpringMVC 提供了统一的异常处理机制,通过 @ExceptionHandler 或配置 ExceptionResolver,可以优雅地处理应用中的异常。 **12. Hibernate ORM** Hibernate 是一款强大的 ORM(对象关系映射)框架,它简化了数据库...

    SpringMVC基础jar包

    - SpringMVC还提供了数据验证机制,通过`@Valid`注解配合JSR-303/JSR-349标准的校验注解(如`@NotNull`、`@Size`等),可以在处理请求时自动进行数据验证。 四、异常处理 SpringMVC提供了统一的异常处理机制,可以...

    SpringMVC基础

    SpringMVC提供了异常处理机制,可以通过`@ExceptionHandler`注解定义在Controller中处理特定异常的方法,或者全局的`@ControllerAdvice`来统一处理所有Controller的异常。 **8. 国际化与本地化** SpringMVC支持...

    springMVC通用jar包

    - 使用`@Valid`配合JSR-303/JSR-349验证注解进行数据验证。 6. **拦截器(Interceptor)** - 可以自定义拦截器,实现预处理和后处理逻辑,例如登录检查、日志记录等。 7. **异常处理** - 可以通过`@...

    springMVC接口化实践

    6. **拦截器(Interceptor)**:SpringMVC的拦截器机制允许我们在请求处理前后执行自定义逻辑,例如进行权限验证、日志记录等。通过实现HandlerInterceptor接口并配置在SpringMVC配置中,可以实现全局的接口拦截处理...

    spring及springmvc源码

    例如,`@ModelAttribute` 注解用于将请求参数绑定到方法参数,`@Valid` 注解配合 `Validator` 接口进行数据验证。异常处理器(HandlerExceptionResolver)能够捕获和处理控制器抛出的异常,提供统一的错误页面。 在...

    SpringMVC例子

    这有助于保持代码的整洁,提供统一的错误处理机制。 ### 9. 国际化和主题支持 SpringMVC提供国际化和主题支持,使得应用能够根据用户的语言和偏好动态地显示内容。 在`TestSpringMVC`这个例子中,我们可以看到一个...

Global site tag (gtag.js) - Google Analytics