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 に答える