水能zai舟 2021-01-14 20:44 采纳率: 50%
浏览 4080

springboot @Min @Max参数校验失效

对于分页参数page、count都做了@Min、@Max规定,参数传入违规参数系统并未报错,求解

import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;

@Validated
@RequestMapping("/v1/banner")
@RestController
public class BannerController {

    @GetMapping("/page")
    public void getBanners(@RequestParam(required = false, defaultValue = "0")
                           @Min(value = 0) Integer page,
                           @RequestParam(required = false, defaultValue = "10")
                           @Min(value = 1) @Max(value = 30) Integer count) {
        /**
         * 这里的@Max与@Min都失效了 Why?
         */
        System.out.println(page);
        System.out.println(count);

    }
}

postman发送GET请求如下,最终得到状态码200正常,不晓得为什么

 

 

  • 写回答

3条回答 默认 最新

  • a1767028198 2021-01-14 21:07
    关注

    第一:spirngmvc不是所有的参数解析器,都提供了Valid的校验;

     

     

    很明显,RequestParamMethodArgumentResolver就不支持参数校验;那两个支持的,一个是普通的bean,一个是json请求(主要是我也不想继续找了吧,可能其他的也支持)

     

    第二个:触发方式,也就是标记的注解也不对,org.springframework.validation.annotation.Validated这个注解支持,还一个就是Valid开头的也支持;我没测试,是不是自己定义一个这个Validaaa注解,他也能拦截勒

    评论

报告相同问题?

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭