如何配置Spring MVC来验证控制器方法参数的构造函数参数

时间:2018-04-25 07:23:45

标签: spring validation kotlin

我在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来验证构造函数参数?

1 个答案:

答案 0 :(得分:0)

你可以做很多事情。您可以通过组合每个字段的注释使其看起来更好一点,例如:

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

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

  1. 手动配置的Spring验证类

  2. 验证代码正文中的数据