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

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 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀