こんにちは私の春のウェブアプリには、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を使用できます。