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