Class WebRequestDataBinder
- All Implemented Interfaces:
- PropertyEditorRegistry,- TypeConverter
DataBinder to perform data binding
 from web request parameters to JavaBeans, including support for multipart files.
 WARNING: Data binding can lead to security issues by exposing parts of the object graph that are not meant to be accessed or modified by external clients. Therefore the design and use of data binding should be considered carefully with regard to security. For more details, please refer to the dedicated sections on data binding for Spring Web MVC and Spring WebFlux in the reference manual.
See the DataBinder/WebDataBinder superclasses for customization options, which include specifying allowed/required fields, and registering custom property editors.
Can also used for manual data binding in custom web controllers or interceptors
 that build on Spring's WebRequest
 abstraction: e.g. in a WebRequestInterceptor
 implementation. Simply instantiate a WebRequestDataBinder for each binding
 process, and invoke bind with the current WebRequest as argument:
 
MyBean myBean = new MyBean(); // apply binder to custom target object WebRequestDataBinder binder = new WebRequestDataBinder(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(); ...
- Since:
- 2.5.2
- Author:
- Juergen Hoeller, Brian Clozel
- See Also:
- 
Nested Class SummaryNested classes/interfaces inherited from class org.springframework.validation.DataBinderDataBinder.NameResolver, DataBinder.ValueResolver
- 
Field SummaryFields inherited from class org.springframework.web.bind.WebDataBinderDEFAULT_FIELD_DEFAULT_PREFIX, DEFAULT_FIELD_MARKER_PREFIXFields inherited from class org.springframework.validation.DataBinderDEFAULT_AUTO_GROW_COLLECTION_LIMIT, DEFAULT_OBJECT_NAME, logger
- 
Constructor SummaryConstructorsConstructorDescriptionWebRequestDataBinder(Object target) Create a new WebRequestDataBinder instance, with default object name.WebRequestDataBinder(Object target, String objectName) Create a new WebRequestDataBinder instance.
- 
Method SummaryModifier and TypeMethodDescriptionvoidbind(WebRequest request) Bind the parameters of the given request to this binder's target, also binding multipart files in case of a multipart request.voidTreats errors as fatal.voidconstruct(WebRequest request) Use a default or single data constructor to create the target by binding request parameters, multipart files, or parts to constructor args.protected booleanWhether to instantiate the constructor argument of the given type, matching its own constructor arguments to bind values.Methods inherited from class org.springframework.web.bind.WebDataBinderadaptEmptyArrayIndices, bindMultipart, checkFieldDefaults, checkFieldMarkers, doBind, getEmptyValue, getEmptyValue, getFieldDefaultPrefix, getFieldMarkerPrefix, isBindEmptyMultipartFiles, resolvePrefixValue, setBindEmptyMultipartFiles, setFieldDefaultPrefix, setFieldMarkerPrefixMethods inherited from class org.springframework.validation.DataBinderaddCustomFormatter, addCustomFormatter, addCustomFormatter, addValidators, applyPropertyValues, bind, checkAllowedFields, checkRequiredFields, close, construct, convertIfNecessary, convertIfNecessary, convertIfNecessary, convertIfNecessary, createBeanPropertyBindingResult, createDirectFieldBindingResult, findCustomEditor, getAllowedFields, getAutoGrowCollectionLimit, getBindingErrorProcessor, getBindingResult, getConversionService, getDisallowedFields, getInternalBindingResult, getNameResolver, getObjectName, getPropertyAccessor, getPropertyEditorRegistry, getRequiredFields, getSimpleTypeConverter, getTarget, getTargetType, getTypeConverter, getValidator, getValidators, getValidatorsToApply, initBeanPropertyAccess, initDirectFieldAccess, isAllowed, isAutoGrowNestedPaths, isDeclarativeBinding, isIgnoreInvalidFields, isIgnoreUnknownFields, registerCustomEditor, registerCustomEditor, replaceValidators, setAllowedFields, setAutoGrowCollectionLimit, setAutoGrowNestedPaths, setBindingErrorProcessor, setConversionService, setDeclarativeBinding, setDisallowedFields, setExcludedValidators, setIgnoreInvalidFields, setIgnoreUnknownFields, setMessageCodesResolver, setNameResolver, setRequiredFields, setTargetType, setValidator, shouldNotBindPropertyValues, validate, validate
- 
Constructor Details- 
WebRequestDataBinderCreate a new WebRequestDataBinder instance, with default object name.- Parameters:
- target- the target object to bind onto (or- nullif the binder is just used to convert a plain parameter value)
- See Also:
 
- 
WebRequestDataBinderCreate a new WebRequestDataBinder instance.- Parameters:
- target- the target object to bind onto (or- nullif the binder is just used to convert a plain parameter value)
- objectName- the name of the target object
 
 
- 
- 
Method Details- 
constructUse a default or single data constructor to create the target by binding request parameters, multipart files, or parts to constructor args.After the call, use DataBinder.getBindingResult()to check for bind errors. If there are none, the target is set, andbind(WebRequest)can be called for further initialization via setters.- Parameters:
- request- the request to bind
- Since:
- 6.1
 
- 
shouldConstructArgumentDescription copied from class:DataBinderWhether to instantiate the constructor argument of the given type, matching its own constructor arguments to bind values.By default, simple value types, maps, collections, and arrays are excluded from nested constructor binding initialization. - Overrides:
- shouldConstructArgumentin class- DataBinder
 
- 
bindBind the parameters of the given request to this binder's target, also binding multipart files in case of a multipart request.This call can create field errors, representing basic binding errors like a required field (code "required"), or type mismatch between value and bean property (code "typeMismatch"). Multipart files are bound via their parameter name, just like normal HTTP parameters: i.e. "uploadedFile" to an "uploadedFile" bean property, invoking a "setUploadedFile" setter method. The type of the target property for a multipart file can be MultipartFile, byte[], or String. Servlet Part binding is also supported when the request has not been parsed to MultipartRequest via MultipartResolver. - Parameters:
- request- the request with parameters to bind (can be multipart)
- See Also:
 
- 
closeNoCatchTreats errors as fatal.Use this method only if it's an error if the input isn't valid. This might be appropriate if all input is from dropdowns, for example. - Throws:
- BindException- if binding errors have been encountered
 
 
-