Как обрезать значения параметров запроса, прежде чем проверять их с помощью пружины mvc? - PullRequest
1 голос
/ 21 апреля 2020

У меня есть такой код:

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 было trim() 'ed перед выполнением проверки @Size. как мне этого добиться?

1 Ответ

0 голосов
/ 21 апреля 2020

Нет возможности выполнить усечение с проверкой бина, хотя вместо @field:Size вы можете использовать Pattern, чтобы разрешить пробелы вокруг данных как:

@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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...