|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.validation.DataBinder org.springframework.web.bind.WebDataBinder org.springframework.web.bind.ServletRequestDataBinder
public class ServletRequestDataBinder
Special DataBinder 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.
Used by Spring web MVC's BaseCommandController and MultiActionController.
Note that BaseCommandController and its subclasses allow for easy customization
of the binder instances that they use through overriding initBinder
.
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(); ...
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)
,
BaseCommandController.initBinder(javax.servlet.http.HttpServletRequest, org.springframework.web.bind.ServletRequestDataBinder)
,
MultiActionController.initBinder(javax.servlet.ServletRequest, org.springframework.web.bind.ServletRequestDataBinder)
Field Summary |
---|
Fields inherited from class org.springframework.web.bind.WebDataBinder |
---|
DEFAULT_FIELD_MARKER_PREFIX |
Fields inherited from class org.springframework.validation.DataBinder |
---|
DEFAULT_OBJECT_NAME, logger |
Constructor Summary | |
---|---|
ServletRequestDataBinder(Object target)
Create a new ServletRequestDataBinder instance, with default object name. |
|
ServletRequestDataBinder(Object target,
String objectName)
Create a new ServletRequestDataBinder instance. |
Method Summary | |
---|---|
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. |
protected void |
checkMultipartFiles(ServletRequest request,
MutablePropertyValues mpvs)
Check the multipart files contained in the given request, if any (in case of a multipart request). |
void |
closeNoCatch()
Treats errors as fatal. |
boolean |
isBindEmptyMultipartFiles()
Return whether to bind empty MultipartFile parameters. |
void |
setBindEmptyMultipartFiles(boolean bindEmptyMultipartFiles)
Set whether to bind empty MultipartFile parameters. |
Methods inherited from class org.springframework.web.bind.WebDataBinder |
---|
checkFieldMarkers, doBind, getEmptyValue, getFieldMarkerPrefix, setFieldMarkerPrefix |
Methods inherited from class org.springframework.validation.DataBinder |
---|
applyPropertyValues, bind, checkAllowedFields, checkRequiredFields, close, createErrors, findCustomEditor, getAllowedFields, getBeanWrapper, getBindingErrorProcessor, getErrors, getObjectName, getRequiredFields, getTarget, isAllowed, isIgnoreUnknownFields, registerCustomEditor, registerCustomEditor, setAllowedFields, setBindingErrorProcessor, setExtractOldValueForEditor, setIgnoreUnknownFields, setMessageCodesResolver, setRequiredFields |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ServletRequestDataBinder(Object target)
target
- target object to bind ontoDataBinder.DEFAULT_OBJECT_NAME
public ServletRequestDataBinder(Object target, String objectName)
target
- target object to bind ontoobjectName
- objectName of the target objectMethod Detail |
---|
public void setBindEmptyMultipartFiles(boolean bindEmptyMultipartFiles)
Turn this off if you want to keep an already bound MultipartFile when the user resubmits the form without choosing a different file. Else, the already bound MultipartFile will be replaced by an empty MultipartFile holder.
public boolean isBindEmptyMultipartFiles()
public void bind(ServletRequest 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
,
checkMultipartFiles(javax.servlet.ServletRequest, org.springframework.beans.MutablePropertyValues)
,
DataBinder.bind(org.springframework.beans.PropertyValues)
protected void checkMultipartFiles(ServletRequest request, MutablePropertyValues mpvs)
Multipart files will only be added to the property values if they are not empty or if we're configured to bind empty multipart files too.
request
- current request (can be multipart)mpvs
- the property values to be bound (can be modified)MultipartHttpServletRequest
,
MultipartFile
,
isBindEmptyMultipartFiles()
public void closeNoCatch() throws ServletRequestBindingException
ServletRequestBindingException
- subclass of ServletException on any binding problem
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |