public class ServletRequestDataBinder extends WebDataBinder
DataBinder
。警告 : データバインディングは、外部クライアントによるアクセスや変更を目的としていないオブジェクトグラフの部分を公開することにより、セキュリティの課題を引き起こす可能性があります。データバインディングの設計と使用は、セキュリティに関して慎重に検討する必要があります。詳細については、リファレンスマニュアルの Spring Web MVC および Spring WebFlux のデータバインディングに関する専用セクションを参照してください。
許可 / 必須フィールドの指定、カスタムプロパティエディターの登録などのカスタマイズオプションについては、DataBinder/WebDataBinder スーパークラスを参照してください。
カスタム Web コントローラーの手動データバインディングにも使用できます。たとえば、プレーンコントローラーの実装や MultiActionController ハンドラーメソッドなどです。バインディングプロセスごとに ServletRequestDataBinder をインスタンス化し、現在の ServletRequest を引数として bind
を呼び出します。
MyBean myBean = new MyBean(); // apply binder to custom target object ServletRequestDataBinder binder = new ServletRequestDataBinder(myBean); // register custom editors, if desired binder.registerCustomEditor(...); // trigger actual binding of request parameters binder.bind(request); // optionally evaluate binding errors Errors errors = binder.getErrors(); ...
bind(javax.servlet.ServletRequest)
, DataBinder.registerCustomEditor(java.lang.Class<?>, java.beans.PropertyEditor)
, DataBinder.setAllowedFields(java.lang.String...)
, DataBinder.setRequiredFields(java.lang.String...)
, WebDataBinder.setFieldMarkerPrefix(java.lang.String)
DEFAULT_FIELD_DEFAULT_PREFIX, DEFAULT_FIELD_MARKER_PREFIX
DEFAULT_AUTO_GROW_COLLECTION_LIMIT, DEFAULT_OBJECT_NAME, logger
コンストラクターと説明 |
---|
ServletRequestDataBinder(ObjectSE target) デフォルトのオブジェクト名で、新しい ServletRequestDataBinder インスタンスを作成します。 |
ServletRequestDataBinder(ObjectSE target, StringSE objectName) 新しい ServletRequestDataBinder インスタンスを作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
protected void | addBindValues(MutablePropertyValues mpvs, ServletRequestEE request) サブクラスがリクエストに追加のバインド値を追加するために使用できる拡張ポイント。 |
void | bind(ServletRequestEE request) 指定されたリクエストのパラメーターをこのバインダーのターゲットにバインドし、マルチパートリクエストの場合はマルチパートファイルもバインドします。 |
void | closeNoCatch() エラーを致命的として扱います。 |
adaptEmptyArrayIndices, bindMultipart, checkFieldDefaults, checkFieldMarkers, doBind, getEmptyValue, getEmptyValue, getFieldDefaultPrefix, getFieldMarkerPrefix, isBindEmptyMultipartFiles, setBindEmptyMultipartFiles, setFieldDefaultPrefix, setFieldMarkerPrefix
addCustomFormatter, addCustomFormatter, addCustomFormatter, addValidators, applyPropertyValues, bind, checkAllowedFields, checkRequiredFields, close, convertIfNecessary, convertIfNecessary, convertIfNecessary, convertIfNecessary, createBeanPropertyBindingResult, createDirectFieldBindingResult, findCustomEditor, getAllowedFields, getAutoGrowCollectionLimit, getBindingErrorProcessor, getBindingResult, getConversionService, getDisallowedFields, getInternalBindingResult, getObjectName, getPropertyAccessor, getPropertyEditorRegistry, getRequiredFields, getSimpleTypeConverter, getTarget, getTypeConverter, getValidator, getValidators, initBeanPropertyAccess, initDirectFieldAccess, isAllowed, isAutoGrowNestedPaths, isIgnoreInvalidFields, isIgnoreUnknownFields, registerCustomEditor, registerCustomEditor, replaceValidators, setAllowedFields, setAutoGrowCollectionLimit, setAutoGrowNestedPaths, setBindingErrorProcessor, setConversionService, setDisallowedFields, setIgnoreInvalidFields, setIgnoreUnknownFields, setMessageCodesResolver, setRequiredFields, setValidator, validate, validate
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public ServletRequestDataBinder(@Nullable ObjectSE target)
target
- バインドするターゲットオブジェクト (または、バインダーが単なるパラメーター値の変換に使用される場合は null
)DataBinder.DEFAULT_OBJECT_NAME
public void bind(ServletRequestEE request)
この呼び出しは、必須フィールド(コード「必須」)などの基本的なバインディングエラーを表すフィールドエラー、または値と Bean プロパティ(コード "typeMismatch" )の型の不一致を作成できます。
マルチパートファイルは、通常の HTTP パラメーターと同様に、パラメーター名を介してバインドされます。つまり、"uploadedFile" を "uploadedFile" Bean プロパティにバインドし、"setUploadedFile" setter メソッドを呼び出します。
マルチパートファイルのターゲットプロパティの型は、MultipartFile、byte[]、または String です。サーブレットパーツバインディングは、リクエストが MultipartResolver を介して MultipartRequest に解析されていない場合にもサポートされます。
request
- バインドするパラメーターを含むリクエスト (マルチパートにすることができます)MultipartHttpServletRequest
, MultipartRequest
, MultipartFile
, Part
EE, DataBinder.bind(org.springframework.beans.PropertyValues)
protected void addBindValues(MutablePropertyValues mpvs, ServletRequestEE request)
WebDataBinder.doBind(MutablePropertyValues)
の前に呼び出されます。デフォルトの実装は空です。mpvs
- データバインディングに使用されるプロパティ値 request
- 現在のリクエスト public void closeNoCatch() throws ServletRequestBindingException
このメソッドは、入力が有効でない場合にエラーになる場合にのみ使用してください。これは、たとえばすべての入力がドロップダウンからのものである場合に適切です。
ServletRequestBindingException
- バインディングの問題に関する ServletException のサブクラス