我使用JSR303 Spring Validation
,我有以下内容;
@Digits(fraction = 0, integer = 15)
private String tpMobile;
验证说Must be number between 10-15 digits
,但问题是可选。因此,当用户将其留空时,也会显示相同的错误消息。
所以我想要做的只是在字段不为空时验证。 如果该字段为空,则跳过验证该字段
答案 0 :(得分:1)
显然,你表单提交空字符串而不是空字符串。只需检查tpMobile
答案 1 :(得分:1)
我建议您使用@Digit
@Pattern(message="YOUR_MESSAGE", regexp="REGULAR_EXPRESSION")
主要原因是我们显示了我们想要限制用户的这类值的消息,此处在您的条件消息中显示了您不想限制的值。
所以你想限制用户输入除空格和数字之外的任何内容。为它做一个正则表达式并使用@Pattern。
对于你的情况:
@Pattern(message="YOUR_MESSAGE", regexp="^(\\s*|\\d{10,15})$")