【问题标题】:how to trim request param values before validating them with spring mvc?如何在使用spring mvc验证请求参数值之前修剪它们?
【发布时间】:2020-04-21 19:56:25
【问题描述】:

我有这样的代码:

data class LoginParams(
        @field:NotNull
        @field:Email
        @field:Size(min = 1, max = 100)
        val email: String?,
        @field:NotNull
        @field:Size(min = 4, max = 100)
        val pass: String?
)

@PostMapping("/login")
fun login(@Valid params: LoginParams){
   //...
}

我希望email 字段在对其进行@Size 验证之前进行trim()'ed。我如何做到这一点?

【问题讨论】:

    标签: spring spring-boot spring-mvc kotlin


    【解决方案1】:

    虽然您可以使用 Pattern 代替 @field:Size 来允许数据周围有空格,但没有选项可以使用 bean 验证执行修剪:

    @field:Pattern(regexp="^\s*[\S]{1,100}\s*$")
    
    • ^\s*: 开始匹配 0 个或多个空格
    • [\S]{1,100}:匹配 1-100 个非空格字符
    • \s*$: 匹配0个或多个空格结束匹配

    或者可选地,可以创建自定义验证器来实现自定义验证登录

    // in your custom annotation interface file
    @Constraint(validatedBy = CustomTrimSizeValidator.class)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-08
      相关资源
      最近更新 更多