我正在Kotlin中编写一个项目,并将其放在 Controller 中:
@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以验证构造函数参数?
最佳答案
您无能为力。您可以通过组合每个字段的注释使它看起来更好一些,例如:
data class Credentials(@field:[Email NotBlank] val email: String,
@field:NotBlank val password: String)
除此之外,您唯一的其他选择是:
关于spring - 如何配置Spring MVC以验证 Controller 方法参数的构造函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50016336/