こんにちは私の春のウェブアプリには、0文字以上または6文字以上20文字未満にしたいパスワード変数があります。注釈があることを知っています。
@Size(min=6, max=20)
しかし、パスワードが0文字になる可能性を追加する方法がわかりません。誰かがこれを手伝ってくれますか?
こんにちは私の春のウェブアプリには、0文字以上または6文字以上20文字未満にしたいパスワード変数があります。注釈があることを知っています。
@Size(min=6, max=20)
しかし、パスワードが0文字になる可能性を追加する方法がわかりません。誰かがこれを手伝ってくれますか?
StringTrimmerEditorコメントを指定すると、空の文字列をnullに変換するために使用できます。その後、@Sizeチェックはトリガーされません(nullは@Sizeで有効と見なされます)。
コントローラに次のメソッドを追加します。
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));
}
StringTrimmerEditorスペースからの入力もトリミングすることに注意してください。このエディターの影響を受けるプロパティを1つだけにする場合は、を使用してregisterCustomEditor(Class<?> requiredType, String propertyPath, PropertyEditor propertyEditor)ください。
空( "")または6〜20文字の長さの文字列が必要な場合は、@Pattern制約を使用して正規表現を指定できます。
@Pattern(regexp="(^$|.{6,20})")
null許容フィールドが必要だと思いますが、それも可能性がmin = 6ありmax = 20ます。AFAIKは@Size、フィールドがnullでない場合にのみアクティブ化する必要があります。
空の文字列を送信する場合は""、検証されます。
少なくともHibernateValidator5ではConstraintCompositionを使用できます。