7

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

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

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

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

4

2 回答 2

3

而不是使用@Digit,我想建议你使用@Pattern(message="YOUR_MESSAGE", regexp="REGULAR_EXPRESSION")

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

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

对于您的情况:

@Pattern(message="YOUR_MESSAGE", regexp="^(\\s*|\\d{10,15})$")
于 2013-10-09T05:08:02.813 回答
1

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

于 2013-10-09T04:25:08.813 回答