【问题标题】:How to configure Spring MVC to validate constructor parameters of controller method arguments如何配置 Spring MVC 以验证控制器方法参数的构造函数参数
【发布时间】:2018-04-25 07:23:45
【问题描述】:

我正在用 Kotlin 编写一个项目,并将它放在一个控制器中:

@PostMapping("/token")
fun generateToken(@RequestBody @Valid credentials: Credentials) { /* something */ }

data class Credentials(@Email @NotBlank val email: String,
                       @NotBlank val password: String)

默认情况下,@Valid 注释告诉 Spring 验证对象字段。但是 Kotlin 在构造函数参数上放置了约束注解,因此验证不起作用。为了使它工作,我必须为注释定义使用站点目标:

data class Credentials(@field:Email @field:NotBlank val email: String,
                       @field:NotBlank val password: String)

这很烦人并增加了视觉垃圾。是否可以配置 Spring 来验证构造函数参数?

【问题讨论】:

    标签: spring validation kotlin


    【解决方案1】:

    您无能为力。您可以通过组合每个字段的注释使其看起来更好一些,例如:

    data class Credentials(@field:[Email NotBlank] val email: String,
                       @field:NotBlank val password: String)
    

    除此之外,您唯一的其他选择是:

    1. 手动配置 Spring 验证类

    2. 验证代码主体中的数据

    【讨论】:

      猜你喜欢
      • 2022-06-18
      • 2022-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多