类 ServletRequestDataBinder
- java.lang.Object
- org.springframework.validation.DataBinder
- org.springframework.web.bind.WebDataBinder
- org.springframework.web.bind.ServletRequestDataBinder
- 所有已实现的接口:
PropertyEditorRegistry
,TypeConverter
public class ServletRequestDataBinder extends WebDataBinder
SpecialDataBinder
to perform data binding from servlet request parameters to JavaBeans, including support for multipart files.See the DataBinder/WebDataBinder superclasses for customization options, which include specifying allowed/required fields, and registering custom property editors.
Can also be used for manual data binding in custom web controllers: for example, in a plain Controller implementation or in a MultiActionController handler method. Simply instantiate a ServletRequestDataBinder for each binding process, and invoke
bind
with the current ServletRequest as argument: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(); ...
- 作者:
- Rod Johnson, Juergen Hoeller
- 另请参阅:
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)
字段概要
从类继承的字段 org.springframework.web.bind.WebDataBinder
DEFAULT_FIELD_DEFAULT_PREFIX, DEFAULT_FIELD_MARKER_PREFIX
从类继承的字段 org.springframework.validation.DataBinder
DEFAULT_AUTO_GROW_COLLECTION_LIMIT, DEFAULT_OBJECT_NAME, logger
构造器概要
构造器 构造器 说明 ServletRequestDataBinder(Object target)
Create a new ServletRequestDataBinder instance, with default object name.ServletRequestDataBinder(Object target, String objectName)
Create a new ServletRequestDataBinder instance.
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 protected void
addBindValues(MutablePropertyValues mpvs, ServletRequest request)
Extension point that subclasses can use to add extra bind values for a request.void
bind(ServletRequest request)
Bind the parameters of the given request to this binder's target, also binding multipart files in case of a multipart request.void
closeNoCatch()
Treats errors as fatal.从类继承的方法 org.springframework.web.bind.WebDataBinder
bindMultipart, checkFieldDefaults, checkFieldMarkers, doBind, getEmptyValue, getFieldDefaultPrefix, getFieldMarkerPrefix, isBindEmptyMultipartFiles, setBindEmptyMultipartFiles, setFieldDefaultPrefix, setFieldMarkerPrefix
从类继承的方法 org.springframework.validation.DataBinder
addCustomFormatter, addCustomFormatter, addCustomFormatter, addValidators, applyPropertyValues, bind, checkAllowedFields, checkRequiredFields, close, 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, setExtractOldValueForEditor, setIgnoreInvalidFields, setIgnoreUnknownFields, setMessageCodesResolver, setRequiredFields, setValidator, validate, validate
构造器详细资料
ServletRequestDataBinder
public ServletRequestDataBinder(Object target)
Create a new ServletRequestDataBinder instance, with default object name.- 参数:
target
- the target object to bind onto (ornull
if the binder is just used to convert a plain parameter value)- 另请参阅:
DataBinder.DEFAULT_OBJECT_NAME
ServletRequestDataBinder
public ServletRequestDataBinder(Object target, String objectName)
Create a new ServletRequestDataBinder instance.- 参数:
target
- the target object to bind onto (ornull
if the binder is just used to convert a plain parameter value)objectName
- the name of the target object
方法详细资料
bind
public void bind(ServletRequest request)
Bind 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. The latter two receive the contents of the uploaded file; all metadata like original file name, content type, etc are lost in those cases.
- 参数:
request
- request with parameters to bind (can be multipart)- 另请参阅:
MultipartHttpServletRequest
,MultipartFile
,DataBinder.bind(org.springframework.beans.PropertyValues)
addBindValues
protected void addBindValues(MutablePropertyValues mpvs, ServletRequest request)
Extension point that subclasses can use to add extra bind values for a request. Invoked beforeWebDataBinder.doBind(MutablePropertyValues)
. The default implementation is empty.- 参数:
mpvs
- the property values that will be used for data bindingrequest
- the current request
closeNoCatch
public void closeNoCatch() throws ServletRequestBindingException
Treats 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.
- 抛出:
ServletRequestBindingException
- subclass of ServletException on any binding problem