public class DataBinder extends ObjectSE implements PropertyEditorRegistry, TypeConverter
バインドプロセスは、許可されるフィールドパターン、必須フィールド、カスタムエディターなどを指定することでカスタマイズできます。
警告 : データバインディングは、外部クライアントによるアクセスや変更を目的としていないオブジェクトグラフの部分を公開することにより、セキュリティの課題を引き起こす可能性があります。データバインディングの設計と使用は、セキュリティに関して慎重に検討する必要があります。詳細については、リファレンスマニュアルの Spring Web MVC および Spring WebFlux のデータバインディングに関する専用セクションを参照してください。
バインディング結果は、BindingResult インターフェースを介して調べることができ、Errors インターフェースを継承します: getBindingResult() メソッドを参照してください。不足しているフィールドとプロパティアクセス例外は、次のエラーコードを使用して、Errors インスタンスで収集された FieldErrors に変換されます。
デフォルトでは、バインディングエラーは BindingErrorProcessor ストラテジー、欠落フィールドおよびプロパティアクセス例外の処理を通じて解決されます。setBindingErrorProcessor(org.springframework.validation.BindingErrorProcessor) メソッドを参照してください。必要に応じて、たとえば異なるエラーコードを生成するために、デフォルトの戦略をオーバーライドできます。
その後、カスタム検証エラーを追加できます。通常、このようなエラーコードを適切なユーザーに表示されるエラーメッセージに解決する必要があります。これは、MessageSource を介して各エラーを解決することで実現できます。MessageSource は、MessageSource.getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale) メソッドにより ObjectError/FieldError を解決できます。メッセージコードのリストは、MessageCodesResolver 戦略を通じてカスタマイズできます。setMessageCodesResolver(org.springframework.validation.MessageCodesResolver) メソッドを参照してください。DefaultMessageCodesResolver の javadoc は、デフォルトの解決規則の詳細を述べています。
この汎用データバインダーは、あらゆる種類の環境で使用できます。
setAllowedFields(java.lang.String...), setRequiredFields(java.lang.String...), registerCustomEditor(java.lang.Class<?>, java.beans.PropertyEditor), setMessageCodesResolver(org.springframework.validation.MessageCodesResolver), setBindingErrorProcessor(org.springframework.validation.BindingErrorProcessor), bind(org.springframework.beans.PropertyValues), getBindingResult(), DefaultMessageCodesResolver, DefaultBindingErrorProcessor, MessageSource| 修飾子と型 | フィールドと説明 |
|---|---|
static int | DEFAULT_AUTO_GROW_COLLECTION_LIMIT 配列およびコレクションの成長のデフォルト制限: 256。 |
static StringSE | DEFAULT_OBJECT_NAME バインドに使用されるデフォルトのオブジェクト名: 「ターゲット」。 |
protected static Log | logger 多くの DataBinder インスタンスを作成します。静的ロガーを使用しましょう。 |
| コンストラクターと説明 |
|---|
DataBinder(ObjectSE target) デフォルトのオブジェクト名で、新しい DataBinder インスタンスを作成します。 |
DataBinder(ObjectSE target, StringSE objectName) 新しい DataBinder インスタンスを作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | addCustomFormatter(Formatter<?> formatter) カスタムフォーマッターを追加し、 Formatter -declared 型に一致するすべてのフィールドに適用します。 |
void | addCustomFormatter(Formatter<?> formatter, ClassSE<?>... fieldTypes) カスタムフォーマッターを追加し、指定されたフィールド型(存在する場合のみ)に適用するか、 Formatter -declared 型に一致するすべてのフィールドに適用します。 |
void | addCustomFormatter(Formatter<?> formatter, StringSE... fields)Formatter クラスで指定されたフィールド型のカスタムフォーマッタを追加し、指定されたフィールドのみ(存在する場合)に適用するか、そうでなければすべてのフィールドに適用します。 |
void | addValidators(Validator... validators) 各バインディングステップの後に適用するバリデーターを追加します。 |
protected void | applyPropertyValues(MutablePropertyValues mpvs) 指定されたプロパティ値をターゲットオブジェクトに適用します。 |
void | bind(PropertyValues pvs) 指定されたプロパティ値をこのバインダーのターゲットにバインドします。 |
protected void | checkAllowedFields(MutablePropertyValues mpvs) 許可されたフィールドに対して特定のプロパティ値を確認し、許可されていないフィールドの値を削除します。 |
protected void | checkRequiredFields(MutablePropertyValues mpvs) 必要なフィールドに対して指定されたプロパティ値を確認し、必要に応じて欠落フィールドエラーを生成します。 |
MapSE<?,?> | close() この DataBinder を閉じると、エラーが発生した場合に BindException がスローされる可能性があります。 |
<T> T | convertIfNecessary(ObjectSE value, ClassSE<T> requiredType) 値を必要な型に変換します(必要に応じて、String から)。 |
<T> T | convertIfNecessary(ObjectSE value, ClassSE<T> requiredType, FieldSE field) 値を必要な型に変換します(必要に応じて、String から)。 |
<T> T | convertIfNecessary(ObjectSE value, ClassSE<T> requiredType, MethodParameter methodParam) 値を必要な型に変換します(必要に応じて、String から)。 |
<T> T | convertIfNecessary(ObjectSE value, ClassSE<T> requiredType, TypeDescriptor typeDescriptor) 値を必要な型に変換します(必要に応じて、String から)。 |
protected AbstractPropertyBindingResult | createBeanPropertyBindingResult() 標準の JavaBean プロパティアクセスを使用して AbstractPropertyBindingResult インスタンスを作成します。 |
protected AbstractPropertyBindingResult | createDirectFieldBindingResult() 直接フィールドアクセスを使用して AbstractPropertyBindingResult インスタンスを作成します。 |
protected void | doBind(MutablePropertyValues mpvs) 渡された MutablePropertyValues インスタンスと連携する、バインディングプロセスの実際の実装。 |
PropertyEditorSE | findCustomEditor(ClassSE<?> requiredType, StringSE propertyPath) 指定された型とプロパティのカスタムプロパティエディターを見つけます。 |
StringSE[] | getAllowedFields() バインドを許可する必要があるフィールドパターンを返します。 |
int | getAutoGrowCollectionLimit() 配列およびコレクションの自動拡張の現在の制限を返します。 |
BindingErrorProcessor | getBindingErrorProcessor() バインディングエラーを処理するための戦略を返します。 |
BindingResult | getBindingResult() この DataBinder によって作成された BindingResult インスタンスを返します。 |
ConversionService | getConversionService() 関連する ConversionService があれば、それを返します。 |
StringSE[] | getDisallowedFields() バインドを許可してはならないフィールドパターンを返します。 |
protected AbstractPropertyBindingResult | getInternalBindingResult() この DataBinder が保持している内部 BindingResult を AbstractPropertyBindingResult として返します。 |
StringSE | getObjectName() バインドされたオブジェクトの名前を返します。 |
protected ConfigurablePropertyAccessor | getPropertyAccessor() このバインダーの BindingResult の基になる PropertyAccessor を返します。 |
protected PropertyEditorRegistry | getPropertyEditorRegistry() このバインダーの BindingResult の基になる TypeConverter を返します。 |
StringSE[] | getRequiredFields() 各バインディングプロセスに必要なフィールドを返します。 |
protected SimpleTypeConverter | getSimpleTypeConverter() このバインダーの基になる SimpleTypeConverter を返します。 |
ObjectSE | getTarget() ラップされたターゲットオブジェクトを返します。 |
protected TypeConverter | getTypeConverter() このバインダーの BindingResult の基になる TypeConverter を返します。 |
Validator | getValidator() 各バインディングステップの後に適用するプライマリバリデータを返します(ある場合)。 |
ListSE<Validator> | getValidators() データバインディング後に適用するバリデーターを返します。 |
void | initBeanPropertyAccess() この DataBinder の標準 JavaBean プロパティアクセスを初期化します。 |
void | initDirectFieldAccess() デフォルトの Bean プロパティアクセスの代替として、この DataBinder の直接フィールドアクセスを初期化します。 |
protected boolean | isAllowed(StringSE field) 指定されたフィールドがバインドを許可されているかどうかを判別します。 |
boolean | isAutoGrowNestedPaths() ネストされたパスの「自動拡張」がアクティブになっているかどうかを返します。 |
boolean | isIgnoreInvalidFields() バインド時に無効なフィールドを無視するかどうかを返します。 |
boolean | isIgnoreUnknownFields() バインド時に不明なフィールドを無視するかどうかを返します。 |
void | registerCustomEditor(ClassSE<?> requiredType, PropertyEditorSE propertyEditor) 指定された型のすべてのプロパティに対して、指定されたカスタムプロパティエディターを登録します。 |
void | registerCustomEditor(ClassSE<?> requiredType, StringSE field, PropertyEditorSE propertyEditor) 指定された型とプロパティ、または指定された型のすべてのプロパティに対して、指定されたカスタムプロパティエディターを登録します。 |
void | replaceValidators(Validator... validators) 各バインディングステップの後に適用するバリデーターを置き換えます。 |
void | setAllowedFields(StringSE... allowedFields) バインドを許可する必要があるフィールドパターンを登録します。 |
void | setAutoGrowCollectionLimit(int autoGrowCollectionLimit) 配列およびコレクションの自動拡張の制限を指定します。 |
void | setAutoGrowNestedPaths(boolean autoGrowNestedPaths) このバインダーが null 値を含むネストされたパスを「自動拡張」しようとするかどうかを設定します。 |
void | setBindingErrorProcessor(BindingErrorProcessor bindingErrorProcessor) バインディングエラーの処理に使用する戦略、つまり、必須フィールドエラーと PropertyAccessException を設定します。 |
void | setConversionService(ConversionService conversionService)JavaBeans PropertyEditors の代わりに、プロパティ値の変換に使用する Spring 3.0 ConversionService を指定します。 |
void | setDisallowedFields(StringSE... disallowedFields) バインドを許可しないフィールドパターンを登録します。 |
void | setIgnoreInvalidFields(boolean ignoreInvalidFields) 無効なフィールドを無視するかどうか、つまり、アクセスできないターゲットオブジェクトに対応するフィールドを持つバインドパラメーターを無視するかどうかを設定します(たとえば、ネストされたパスの null 値のため)。 |
void | setIgnoreUnknownFields(boolean ignoreUnknownFields) 不明なフィールドを無視するかどうか、つまり、ターゲットオブジェクトに対応するフィールドがないバインドパラメーターを無視するかどうかを設定します。 |
void | setMessageCodesResolver(MessageCodesResolver messageCodesResolver) エラーをメッセージコードに解決するために使用する戦略を設定します。 |
void | setRequiredFields(StringSE... requiredFields) 各バインディングプロセスに必要なフィールドを登録します。 |
void | setValidator(Validator validator) 各バインディングステップの後に適用するように Validator を設定します。 |
void | validate() 指定されたバリデータがある場合は呼び出します。 |
void | validate(ObjectSE... validationHints) 指定された検証ヒントがあれば、指定された検証ヒントを呼び出します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic static final StringSE DEFAULT_OBJECT_NAME
public static final int DEFAULT_AUTO_GROW_COLLECTION_LIMIT
protected static final Log logger
public DataBinder(@Nullable ObjectSE target)
target - バインドするターゲットオブジェクト (または、バインダーが単なるパラメーター値の変換に使用される場合は null )DEFAULT_OBJECT_NAMEpublic StringSE getObjectName()
public void setAutoGrowNestedPaths(boolean autoGrowNestedPaths)
"true" の場合、null パスの場所にはデフォルトのオブジェクト値が入力され、例外が発生する代わりにトラバースされます。このフラグは、範囲外のインデックスにアクセスするときにコレクション要素の自動成長も有効にします。
標準の DataBinder では、デフォルトは "true" です。Spring 4.1 以降、この機能は Bean プロパティアクセス(DataBinder のデフォルトモード)およびフィールドアクセスでサポートされています。
public boolean isAutoGrowNestedPaths()
public void setAutoGrowCollectionLimit(int autoGrowCollectionLimit)
デフォルトは 256 で、大きなインデックスの場合に OutOfMemoryErrors を防ぎます。自動成長のニーズが異常に高い場合は、この制限を上げます。
public int getAutoGrowCollectionLimit()
public void initBeanPropertyAccess()
これがデフォルトです。明示的な呼び出しは、先行初期化につながります。
protected AbstractPropertyBindingResult createBeanPropertyBindingResult()
AbstractPropertyBindingResult インスタンスを作成します。public void initDirectFieldAccess()
protected AbstractPropertyBindingResult createDirectFieldBindingResult()
AbstractPropertyBindingResult インスタンスを作成します。protected AbstractPropertyBindingResult getInternalBindingResult()
protected ConfigurablePropertyAccessor getPropertyAccessor()
protected SimpleTypeConverter getSimpleTypeConverter()
protected PropertyEditorRegistry getPropertyEditorRegistry()
protected TypeConverter getTypeConverter()
public BindingResult getBindingResult()
Errors, bind(org.springframework.beans.PropertyValues)public void setIgnoreUnknownFields(boolean ignoreUnknownFields)
デフォルトは "true" です。これをオフにすると、すべてのバインドパラメーターに、ターゲットオブジェクトに一致するフィールドが必要になります。
この設定は、この DataBinder のバインディング操作にのみ適用され、BindingResult を介した値の取得には適用されないことに注意してください。
public boolean isIgnoreUnknownFields()
public void setIgnoreInvalidFields(boolean ignoreInvalidFields)
デフォルトは "false" です。これをオンにすると、ターゲットオブジェクトグラフの存在しない部分にネストされたオブジェクトのバインドパラメーターが無視されます。
この設定は、この DataBinder のバインディング操作にのみ適用され、BindingResult を介した値の取得には適用されないことに注意してください。
public boolean isIgnoreInvalidFields()
public void setAllowedFields(@Nullable StringSE... allowedFields)
デフォルトはすべてのフィールドです。
これを制限して、たとえば、HTTP リクエストパラメーターをバインドするときに悪意のあるユーザーによる不要な変更を回避します。
"xxx*"、"*xxx"、"*xxx*"、"xxx*yyy" の一致(任意の数のパターンパーツを使用)、および直接の同等性をサポートします。
このメソッドのデフォルトの実装では、許可されたフィールドパターンが標準形式で保存されます。このメソッドをオーバーライドするサブクラスは、これを考慮に入れる必要があります。
isAllowed(java.lang.String) メソッドをオーバーライドすることにより、より高度なマッチングを実装できます。
または、 許可されていないフィールドパターンのリストを指定します。
allowedFields - 許可されたフィールドパターンの配列 setDisallowedFields(java.lang.String...), isAllowed(String)@Nullable public StringSE[] getAllowedFields()
setAllowedFields(String...)public void setDisallowedFields(@Nullable StringSE... disallowedFields)
デフォルトはなしです。
たとえば、HTTP リクエストパラメーターをバインドするときに悪意のあるユーザーによる不要な変更を回避するために、フィールドを不許可としてマークします。
"xxx*"、"*xxx"、"*xxx*"、"xxx*yyy" の一致(任意の数のパターンパーツを使用)、および直接の同等性をサポートします。
このメソッドのデフォルトの実装では、許可されていないフィールドパターンが標準形式で保存されます。Spring Framework 5.2.21 の時点で、デフォルトの実装では、許可されていないフィールドパターンも小文字SEに変換され、isAllowed(java.lang.String) で大文字と小文字を区別しないパターンマッチングがサポートされます。このメソッドをオーバーライドするサブクラスは、これらの変換の両方を考慮に入れる必要があります。
isAllowed(java.lang.String) メソッドをオーバーライドすることにより、より高度なマッチングを実装できます。
または、 許可されるフィールドパターンのリストを指定します。
disallowedFields - 許可されていないフィールドパターンの配列 setAllowedFields(java.lang.String...), isAllowed(String)@Nullable public StringSE[] getDisallowedFields()
setDisallowedFields(String...)public void setRequiredFields(@Nullable StringSE... requiredFields)
指定されたフィールドのいずれかが受信プロパティ値のリストに含まれていない場合、対応する「フィールドがありません」エラーが作成され、エラーコード「必須」がデフォルトのバインドエラープロセッサーによって作成されます。
requiredFields - フィールド名の配列 setBindingErrorProcessor(org.springframework.validation.BindingErrorProcessor), DefaultBindingErrorProcessor.MISSING_FIELD_ERROR_CODE@Nullable public StringSE[] getRequiredFields()
public void setMessageCodesResolver(@Nullable MessageCodesResolver messageCodesResolver)
デフォルトは DefaultMessageCodesResolver です。
public void setBindingErrorProcessor(BindingErrorProcessor bindingErrorProcessor)
PropertyAccessException を設定します。デフォルトは DefaultBindingErrorProcessor です。
public BindingErrorProcessor getBindingErrorProcessor()
public void setValidator(@Nullable Validator validator)
public void addValidators(Validator... validators)
public void replaceValidators(Validator... validators)
public void setConversionService(@Nullable ConversionService conversionService)
@Nullable public ConversionService getConversionService()
public void addCustomFormatter(Formatter<?> formatter)
Formatter -declared 型に一致するすべてのフィールドに適用します。 対応する PropertyEditorSE アダプターをカバーに登録します。
formatter - 追加するフォーマッタ、特定の型に対して一般的に宣言された registerCustomEditor(Class, PropertyEditor)public void addCustomFormatter(Formatter<?> formatter, StringSE... fields)
Formatter クラスで指定されたフィールド型のカスタムフォーマッタを追加し、指定されたフィールドのみ(存在する場合)に適用するか、そうでなければすべてのフィールドに適用します。 対応する PropertyEditorSE アダプターをカバーに登録します。
formatter - 追加するフォーマッタ、特定の型に対して一般的に宣言された fields - フォーマッタを適用するフィールド、またはすべてに適用する場合はなし registerCustomEditor(Class, String, PropertyEditor)public void addCustomFormatter(Formatter<?> formatter, ClassSE<?>... fieldTypes)
Formatter -declared 型に一致するすべてのフィールドに適用します。 対応する PropertyEditorSE アダプターをカバーに登録します。
formatter - 追加するフォーマッタ (フィールド型がパラメーターとして明示的に指定されている場合、フィールド型を総称的に宣言する必要はありません。)fieldTypes - フォーマッタを適用するフィールド型、または指定された Formatter 実装クラスから派生する場合はなし registerCustomEditor(Class, PropertyEditor)public void registerCustomEditor(ClassSE<?> requiredType, PropertyEditorSE propertyEditor)
PropertyEditorRegistryPropertyEditorRegistry の registerCustomEditor requiredType - プロパティの型 propertyEditor - 登録するエディター public void registerCustomEditor(@Nullable ClassSE<?> requiredType, @Nullable StringSE field, PropertyEditorSE propertyEditor)
PropertyEditorRegistry プロパティパスが配列またはコレクションプロパティを示す場合、エディターは配列 / コレクション自体(PropertyEditorSE が配列またはコレクション値を作成する必要がある)または各要素(PropertyEditor が要素型を作成する必要がある)のいずれかに適用されます。指定された必須型に応じて。
メモ: プロパティパスごとに 1 つの登録済みカスタムエディターのみがサポートされます。コレクション / 配列の場合、コレクション / 配列と同じプロパティの各要素の両方にエディターを登録しないでください。
たとえば、"items[n].quantity" (すべての値 n)のエディターを登録する場合は、このメソッドの "propertyPath" 引数の値として "items.quantity" を使用します。
PropertyEditorRegistry の registerCustomEditor requiredType - プロパティの型。これは、プロパティが指定されている場合でも null である可能性がありますが、特にコレクションの場合は特に指定する必要があります。エディター全体がコレクション自体に適用されるか、各エントリに適用されるかを明確にします。一般的なルールとして、Collection/array の場合は、ここで null を指定しないでください! field - プロパティのパス(名前またはネストされたパス)、または指定された型のすべてのプロパティのエディターを登録する場合は null propertyEditor - 登録するエディター @Nullable public PropertyEditorSE findCustomEditor(@Nullable ClassSE<?> requiredType, @Nullable StringSE propertyPath)
PropertyEditorRegistryPropertyEditorRegistry の findCustomEditor requiredType - プロパティの型 (プロパティが指定されている場合は null にすることができますが、一貫性チェックのためにいずれにしても指定する必要があります)propertyPath - プロパティのパス(名前またはネストされたパス)、または特定の型のすべてのプロパティのエディターを探している場合は null null @Nullable public <T> T convertIfNecessary(@Nullable ObjectSE value, @Nullable ClassSE<T> requiredType) throws TypeMismatchException
TypeConverterString から任意の型への変換では、通常、PropertyEditor クラスの setAsText メソッド、または ConversionService の Spring コンバーターを使用します。
TypeConverter の convertIfNecessary value - 変換する値 requiredType - 変換する必要がある型 (または null (不明な場合、たとえばコレクション要素の場合))TypeMismatchException - 型変換が失敗した場合 PropertyEditor.setAsText(String)SE, PropertyEditor.getValue()SE, ConversionService, Converter@Nullable public <T> T convertIfNecessary(@Nullable ObjectSE value, @Nullable ClassSE<T> requiredType, @Nullable MethodParameter methodParam) throws TypeMismatchException
TypeConverterString から任意の型への変換では、通常、PropertyEditor クラスの setAsText メソッド、または ConversionService の Spring コンバーターを使用します。
TypeConverter の convertIfNecessary value - 変換する値 requiredType - 変換する必要がある型 (または null (不明な場合、たとえばコレクション要素の場合))methodParam - 変換のターゲットであるメソッドパラメーター (ジェネリクス型の分析用。null の場合があります)TypeMismatchException - 型変換が失敗した場合 PropertyEditor.setAsText(String)SE, PropertyEditor.getValue()SE, ConversionService, Converter@Nullable public <T> T convertIfNecessary(@Nullable ObjectSE value, @Nullable ClassSE<T> requiredType, @Nullable FieldSE field) throws TypeMismatchException
TypeConverterString から任意の型への変換では、通常、PropertyEditor クラスの setAsText メソッド、または ConversionService の Spring コンバーターを使用します。
TypeConverter の convertIfNecessary value - 変換する値 requiredType - 変換する必要がある型 (または null (不明な場合、たとえばコレクション要素の場合))field - 変換のターゲットである反射フィールド (ジェネリクス型の分析用。null の場合があります)TypeMismatchException - 型変換が失敗した場合 PropertyEditor.setAsText(String)SE, PropertyEditor.getValue()SE, ConversionService, Converter@Nullable public <T> T convertIfNecessary(@Nullable ObjectSE value, @Nullable ClassSE<T> requiredType, @Nullable TypeDescriptor typeDescriptor) throws TypeMismatchException
TypeConverterString から任意の型への変換では、通常、PropertyEditor クラスの setAsText メソッド、または ConversionService の Spring コンバーターを使用します。
TypeConverter の convertIfNecessary value - 変換する値 requiredType - 変換する必要がある型 (または null (不明な場合、たとえばコレクション要素の場合))typeDescriptor - 使用する型記述子(null の場合があります)TypeMismatchException - 型変換が失敗した場合 PropertyEditor.setAsText(String)SE, PropertyEditor.getValue()SE, ConversionService, Converterpublic void bind(PropertyValues pvs)
この呼び出しにより、必須フィールド (コード「必須」) などの基本的なバインディングエラーや、値と Bean プロパティ (コード "typeMismatch" ) の型の不一致を表すフィールドエラーが発生する可能性があります。
指定された PropertyValues は使い捨てインスタンスである必要があることに注意してください。効率を上げるため、MutablePropertyValues インターフェースを実装する場合、許可されたフィールドのみを含むように変更されます。それ以外の場合、この目的のために内部可変コピーが作成されます。いずれの場合も元のインスタンスを変更しないでおくには、PropertyValues のコピーを渡します。
pvs - バインドするプロパティ値 doBind(org.springframework.beans.MutablePropertyValues)protected void doBind(MutablePropertyValues mpvs)
mpvs - MutablePropertyValues インスタンスとしてバインドするプロパティ値 checkAllowedFields(org.springframework.beans.MutablePropertyValues), checkRequiredFields(org.springframework.beans.MutablePropertyValues), applyPropertyValues(org.springframework.beans.MutablePropertyValues)protected void checkAllowedFields(MutablePropertyValues mpvs)
mpvs - バインドされるプロパティ値 (変更可能)getAllowedFields(), isAllowed(String)protected boolean isAllowed(StringSE field)
渡されたプロパティ値ごとに呼び出されます。
許可されたフィールドパターンと許可されていないフィールドパターンの構成済みリストで、"xxx*"、"*xxx"、"*xxx*"、"xxx*yyy" の一致(任意の数のパターンパーツを使用)および直接の同等性をチェックします。
許可されたフィールドパターンとの照合では、大文字と小文字が区別されます。一方、許可されていないフィールドパターンとの照合では、大文字と小文字は区別されません。
許可されていないパターンに一致するフィールドは、許可されたリストのパターンにも一致する場合でも受け入れられません。
サブクラスでオーバーライドできますが、前述の契約を尊重するように注意する必要があります。
field - チェックするフィールド true setAllowedFields(java.lang.String...), setDisallowedFields(java.lang.String...), PatternMatchUtils.simpleMatch(String, String)protected void checkRequiredFields(MutablePropertyValues mpvs)
mpvs - バインドされるプロパティ値 (変更可能)getRequiredFields(), getBindingErrorProcessor(), BindingErrorProcessor.processMissingFieldError(java.lang.String, org.springframework.validation.BindingResult)protected void applyPropertyValues(MutablePropertyValues mpvs)
デフォルトの実装では、提供されたすべてのプロパティ値が Bean プロパティ値として適用されます。デフォルトでは、不明なフィールドは無視されます。
public void validate()
public void validate(ObjectSE... validationHints)
メモ: 検証ヒントは、実際のターゲット Validator によって無視される場合があります。
validationHints - SmartValidator に渡される 1 つ以上のヒントオブジェクト setValidator(Validator), SmartValidator.validate(Object, Errors, Object...)public MapSE<?,?> close() throws BindException
BindException - バインド操作にエラーがあった場合 BindingResult.getModel()