zoukankan      html  css  js  c++  java
  • Spring-BeanValidation校验@RequestParam参数 (控制器单参数验证)

    概述

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

    方案

      1.Spring容器注入MethodValidationPostProcessor对象 (spring-mvc.xml配置)

     <bean class="org.springframework.validation.beanvalidation.MethodValidationPostProcessor"/>

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

      2.使用@Validated注解

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

      3.使用校验注解

    @RestController
    @Validated
    public class TestController {
    
        @RequestMapping("/test")
        public String test(@NotBlank(message = "姓名不能为空") @RequestParam("name") String name) {
             // .....
             return ResponseVO.successWithNoData("ok");
         }
    }

      4.局校验异常捕捉

    @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 "请求参数不合法";
        }
    }

    转 : https://blog.csdn.net/onupway/article/details/78367629

  • 相关阅读:
    Java-WebDriver模块
    Java-数据类型(八中基本数据类型)
    Java基础
    Java介绍
    Eclipse介绍
    Jmeter-服务器监控技术
    性能测试
    Jmeter-相关字段含义
    Jmeter-监听器
    Jmeter-BeanShell组件应用
  • 原文地址:https://www.cnblogs.com/fps2tao/p/13789089.html
Copyright © 2011-2022 走看看