`

Spring-BeanValidation校验@RequestParam参数

 
阅读更多

 

概述

我们知道,Spring BeanValidation可以用来校验我们客户的提交的参数对应的Bean对象。但是在很多情况,我们的参数只有一个简单字符串或者是数字型参数(采用@RequestParam注解),要想使用SpringValidation还需要把这简单的参数包装成对象,甚是麻烦。下面我们看下,怎么样才能使@RequestParam注解的参数也可以使用Spring Validatio呢。

方案

  1. Spring容器注入MethodValidationPostProcessor对象
    <bean class="org.springframework.validation.beanvalidation.MethodValidationPostProcessor"/>
  • 1

注意:如果Sping配置文件和SpringMVC配置文件分别独立,需要把这个配置加到SpringMVC配置中

  1. 使用@Validated注解 
    在对应的Controller中加上@Validated注解,当然也可以加到独立的请求方法中

  2. 使用校验注解

@RestController
@Validated
public class TestController {

    @RequestMapping("/test")
    public String test(@NotBlank(message = "姓名不能为空") @RequestParam("name") String name) {
         // .....
         return ResponseVO.successWithNoData("ok");
     }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  1. 全局校验异常捕捉
@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(ConstraintViolationException.class)
    @ResponseBody
    @ResponseStatus(HttpStatus.BAD_REQUEST)
    public String handleValidationException(ConstraintViolationException e){
        for(ConstraintViolation<?> s:e.getConstraintViolations()){
            return s.getInvalidValue()+": "+s.getMessage();
        }
        return "请求参数不合法";
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

分享到:
评论

相关推荐

    spring-mvc-官方中文文档

    11. **验证**:Spring MVC 集成了 Bean Validation API,允许开发者对模型数据进行校验,通过 @Valid 注解和 ConstraintValidator 实现自定义验证规则。 12. **消息转换**:Spring MVC 提供了 HttpMessageConverter...

    配置springmvc的spring-webmvc的jar包

    3. **Spring Validation**:集成Bean Validation进行数据校验。 4. **MVC拦截器**:自定义拦截器,实现预处理和后处理功能。 综上所述,`spring-webmvc`是Spring MVC的核心,它通过一系列组件和机制提供了强大的...

    Spring-mvc-showcase

    @ModelAttribute 注解用于将请求参数绑定到方法参数,而 @Valid 注解配合 Validation API 可以进行数据校验。 9. **RESTful 风格**:项目中可能会包含 RESTful 风格的 URL 设计,使用 HTTP 方法(GET、POST、PUT、...

    spring-mvc实例

    8. **验证**:Spring MVC支持JSR-303/JSR-349 Bean Validation标准,可以对模型对象进行数据校验。 9. **国际化**:通过`ResourceBundleMessageSource`和`LocaleResolver`实现多语言支持。 10. **拦截器**:使用`@...

    SPRING MVC

    - Spring MVC 支持 JSR-303/JSR-349 Bean Validation 规范,通过注解进行数据校验。 9. **异常处理(Exception Handling)**: - 可以使用 `@ExceptionHandler` 注解处理特定类型的异常,或配置全局异常处理器。 ...

    springmvc 参数绑定例子1

    - **JSR-303/JSR-349 Bean Validation**:Spring MVC支持使用Bean Validation进行参数验证,可以在对象类上添加验证注解,如`@NotNull`, `@Size`等。 ```java public class User { @NotNull private String ...

    扩展SpringMVC以支持绑定JSON格式的请求参数

    为了确保请求参数的有效性,我们可以使用JSR-303/JSR-349 Bean Validation标准,配合`@Valid`注解进行验证。Spring MVC会自动调用验证器,并在验证失败时抛出异常。 6. **性能优化** 为了提高性能,可以开启Gzip...

    Spring In Action MVC 提交表单(2)-数据绑定和数据校验

    Spring提供了内置的数据校验框架,基于JSR 303/JSR 349(Bean Validation)标准。我们可以通过在bean的属性上添加校验注解来定义验证规则,如`@NotNull`, `@Size`, `@Pattern`等。 ```java public class User { ...

    Spring MVC demo

    - `@Valid`: 配合JSR-303/JSR-349 Bean Validation标准,进行表单数据的验证。 - `@NotBlank`, `@NotEmpty`, `@Size`, `@Min`, `@Max`: 这些是验证注解,可以对字符串、集合、数值等类型的字段进行约束。 5. **...

    spring MVC基础学习

    - 数据验证:通过JSR-303/JSR-349标准实现Bean Validation,对输入数据进行校验。 6. **异常处理**: - 可以通过@ControllerAdvice和@ExceptionHandler全局处理异常。 - 错误页面配置,比如404、500等错误页面。...

    Spring MVC-Web(4)

    数据验证通常通过JSR-303/JSR-349的Bean Validation实现,可以在控制器方法执行前对输入数据进行校验。 Spring MVC的模型-视图-适配器(MVC)设计模式促进了代码的解耦。适配器(即DispatcherServlet)处理HTTP请求...

    spring3mvc真正入门资料

    - **@Valid**:进行数据校验,结合JSR-303/JSR-349 Bean Validation框架。 - **BindingResult**:获取验证结果,用于显示错误信息。 6. **拦截器** - **HandlerInterceptor**:拦截请求,执行预处理和后处理操作...

    spring mvc 例子

    - 使用 @Valid 和 javax.validation 注解进行数据校验。 7. **拦截器(Interceptor)** - 定义自定义拦截器,实现 HandlerInterceptor 接口,处理请求前后的逻辑,如登录检查、权限控制等。 - 在 Spring MVC ...

    Spring boot进行参数校验的方法实例详解

    Spring Boot 参数校验方法实例详解 ...Spring Boot 提供了多种方法来实现参数校验,包括使用 JSR-303 Bean Validation API、自定义注解和 Validator 等。开发者可以根据实际情况选择合适的方法来实现参数校验。

    springmvc学习笔记

    - **数据验证**:通过JSR-303/JSR-349 Bean Validation实现模型数据的校验。 6. **异常处理** - **@ExceptionHandler**:在控制器中处理特定的异常。 - **Global Exception Handler**:全局异常处理器,捕获所有...

    spring-mvc-controller

    在处理Bean参数时,我们可以利用Java Bean Validation规范来验证输入数据。首先,我们需要在Bean类中添加校验注解,如`@NotNull`,`@Size`等。然后,在控制器方法中使用`@Validated`或`@Valid`注解来启动验证过程: ...

    springMvc 燕青 springmvc课程 2天源代码

    - **@Validated** 和 **javax.validation**:支持 Java Bean 规范的验证,对输入数据进行校验。 5. **异常处理** - **@ExceptionHandler**:标记在方法上,用于捕获特定类型的异常并进行处理。 - **...

    springmvc01.zip_DEMO_JSON校验_spring mvc

    在Spring MVC中,我们可以使用JSR-303/JSR-349标准的Bean Validation框架进行JSON数据校验。首先,你需要在实体类中添加对应的校验注解,如`@NotNull`、`@Size`等。然后,在控制器的方法中,使用`@Valid`注解来激活...

    springmvcspringmvc

    Spring MVC支持JSR-303/JSR-349 Bean Validation进行数据校验,通过在字段上添加验证注解,如`@NotNull`, `@Size`等。 ### 6. 异常处理 - **@ExceptionHandler**:在Controller方法中处理特定的异常。 - **@...

    Spring 注解学习手札(三) 表单页面处理

    `@Valid` 会触发Bean Validation,对传入的对象进行校验,如果校验失败,Spring会自动返回错误信息。 6. `ModelAndView` 和 `Model`: `ModelAndView` 类用于组合视图和模型数据,它在传统MVC模式中常见。而`Model...

Global site tag (gtag.js) - Google Analytics