2013-10-09 2 views
2

Я использую JSR303 Spring Validation, и у меня есть следующее;Подтвердить только в том случае, если поле не Null

@Digits(fraction = 0, integer = 15) 
private String tpMobile; 

Validation говорит Must be number between 10-15 digits, но дело в том, это поле необязательно. Поэтому, когда пользователь оставил его пустым, появляется одно и то же сообщение об ошибке.

Так что я хочу, чтобы проверить, только если поле не пусто. Если поле пуст, пропустите проверку этого поля

ответ

1

Вместо использования @Digit, я хотел бы предложить вам использовать @Pattern(message="YOUR_MESSAGE", regexp="REGULAR_EXPRESSION")

Основная причина в том, что мы выводим сообщение для такого набора значений, для которых мы хотим ограничить пользователя, здесь в вашем сообщении условия отображается для этого значения, которое вы не хотите ограничивать.

Таким образом, вы хотите ограничить пользователя вводом чего-либо иного, кроме пробела и цифр. Создайте для этого регулярное выражение и используйте с ним @Pattern.

В вашем случае:

@Pattern(message="YOUR_MESSAGE", regexp="^(\\s*|\\d{10,15})$") 
+0

I founf "/^(\ s * | \ d +) $ /" , но не работает – Ravindu

1

Очевидно, что вы формируете пустые строки вместо нулей. Просто проверьте значение tpMobile

+0

Yeh, его отправка пустые строковые значения, когда чек от поджигатель. – Ravindu

+0

Так что я могу отправить NULL-значения тогда? – Ravindu

+0

Да, просто 'NULL' вместо" " –

 Смежные вопросы

  • Нет связанных вопросов^_^