仅在字段不为空时才进行验证

时间:2013-10-09 04:13:03

标签: java spring validation bean-validation jsr

我使用JSR303 Spring Validation,我有以下内容;

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

验证说Must be number between 10-15 digits,但问题是可选。因此,当用户将其留空时,也会显示相同的错误消息。

所以我想要做的只是在字段不为空时验证。 如果该字段为空,则跳过验证该字段

2 个答案:

答案 0 :(得分:1)

显然,你表单提交空字符串而不是空字符串。只需检查tpMobile

的值即可

答案 1 :(得分:1)

我建议您使用@Digit

,而不是使用@Pattern(message="YOUR_MESSAGE", regexp="REGULAR_EXPRESSION")

主要原因是我们显示了我们想要限制用户的这类值的消息,此处在您的条件消息中显示了您不想限制的值。

所以你想限制用户输入除空格和数字之外的任何内容。为它做一个正则表达式并使用@Pattern。

对于你的情况:

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