Как записать значение переменной Java в сообщении валидатора - PullRequest
0 голосов
/ 02 ноября 2019

Для длины OTP я использую 6, которое я беру из переменной

static final int OTP_LENGTH = 6;

@Size(min = OTP_LENGTH, max = OTP_LENGTH, message = "OTP Length should be {OTP_LENGTH} !!")
private String otp;

Для которой я получаю сообщение об ошибке, если размер не равен OTP_LENGTH.

"fieldErrors": [
    {
      "field": "password",
      "message": "Not a Base64 string !!"
    },
    {
      "field": "otp",
      "message": "OTP Length should be {OTP_LENGTH} !!"
    }
  ]

Я также пытался

@Size(min = OTP_LENGTH, max = OTP_LENGTH, message = "OTP Length should be ${OTP_LENGTH} !!")
private String otp;

Но OTP_LENGTH 6 не устанавливается.

Ожидание: - "Длина OTP должна быть 6 !!"

И есть ли другой валидатор, который принимает только 1 длину.

@ Размер, @Length может занятьmax, @Size (max = OTP_LENGTH), но снова min будет 0. Если я не буду переопределять сообщение, оно покажет, что длина должна быть между 0 и 6.

1 Ответ

1 голос
/ 02 ноября 2019

Вы должны использовать поля min и max из аннотации @Size, например:

@Size(min = OTP_LENGTH, max = OTP_LENGTH, message = "OTP Length must be between {min} and {max}")
private String otp;

Для значения вы можете validatedValue свойство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...