Java 仅当字段不为空时验证

Java 仅当字段不为空时验证,java,spring,validation,bean-validation,jsr,Java,Spring,Validation,Bean Validation,Jsr,我使用了JSR303 Spring验证,我有以下几点: @Digits(fraction = 0, integer = 15) private String tpMobile; 验证说明必须是10-15位之间的数字,但问题是此字段是可选的。所以,当用户将其留空时,也会显示相同的错误消息 因此,我要做的是仅在字段不为空时进行验证。 如果字段为空,则跳过验证该字段显然,表单将提交空字符串而不是空字符串。只需检查tpMobile的值,而不是使用@Digit,我建议您使用@模式(message=“YO

我使用了
JSR303 Spring验证
,我有以下几点:

@Digits(fraction = 0, integer = 15)
private String tpMobile;
验证说明
必须是10-15位之间的数字
,但问题是此字段是可选的。所以,当用户将其留空时,也会显示相同的错误消息

因此,我要做的是仅在字段不为空时进行验证。
如果字段为空,则跳过验证该字段显然,表单将提交空字符串而不是空字符串。只需检查
tpMobile
的值,而不是使用
@Digit
,我建议您使用
@模式(message=“YOUR_message”,regexp=“REGULAR_EXPRESSION”)

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

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

对于您的情况:

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

是的,当firebug检查时,它发送空字符串值。那么我可以发送空值吗?是的,只是
NULL
而不是“”