【问题标题】:Validate path variable size验证路径变量大小
【发布时间】:2019-04-03 09:00:07
【问题描述】:

我发现这个例子如何验证路径变量:https://www.mkyong.com/spring-boot/spring-rest-validation-example/

@PostMapping(value = "/payment/{unique_transaction_id}")
      public ResponseEntity<StringResponseDTO> handleWpfMessage(@PathVariable("unique_transaction_id") @Valid @Max(32) String unique_transaction_id) throws Exception {

我是否可以添加 @Valid 的限制为 String @Max(32) 的婴儿,或者我必须在课程级别添加 @Validated,如教程中所示?

【问题讨论】:

    标签: java spring spring-boot validation spring-validator


    【解决方案1】:

    您可以为路径变量定义正则表达式

    @PostMapping(value = "/payment/{unique_transaction_id:[a-zA-Z0-9]{0,32}}")

    【讨论】:

    • 但是我应该在类级别添加@Valid 吗?
    • 不,不需要,@Valid 验证您的请求正文 POJO 类中定义的所有约束。
    • 还有其他方法可以通过注释应用 [a-zA-Z0-9] 限制吗?
    • 我不认为(或者我不知道)存在任何用于相同目的的注释。还有其他方法,例如在过滤器/拦截器中验证它,但它不像上述解决方案那样直接。
    • 这可能是 spring 中的增强功能,用于在 @PathVariable 注释中添加字段正则表达式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    • 2016-01-28
    相关资源
    最近更新 更多