package com.projectr.web; import java.text.SimpleDateFormat; import java.util.Date; import org.springframework.beans.propertyeditors.CustomBooleanEditor; import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.beans.propertyeditors.CustomNumberEditor; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.support.WebBindingInitializer; import org.springframework.web.context.request.WebRequest; import org.springframework.web.multipart.support.ByteArrayMultipartFileEditor; public class CommonBindingInitializer implements WebBindingInitializer { public void initBinder(WebDataBinder binder, WebRequest request) { binder.registerCustomEditor(Integer.class, null, new CustomNumberEditor(Integer.class, null, true)); binder.registerCustomEditor(Long.class, null, new CustomNumberEditor( Long.class, null, true)); binder.registerCustomEditor(Boolean.class, null, new CustomBooleanEditor(true)); binder.registerCustomEditor(byte[].class, new ByteArrayMultipartFileEditor()); SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy", request.getLocale()); dateFormat.setLenient(false); binder.registerCustomEditor(Date.class, null, new CustomDateEditor(dateFormat, true)); } }
In your context application or servlet dispatcher
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="webBindingInitializer"> <bean class="com.projectr.web.CommonBindingInitializer"/> </property> </bean>
Equivalence symbol for the above code. Note that @ControllerAdvice is introduced in Spring 3.2.x
@ControllerAdvice public class CommonBindingInitializer { @InitBinder public void registerCustomEditors(WebDataBinder binder, WebRequest request) { binder.registerCustomEditor(Integer.class, null, new CustomNumberEditor(Integer.class, null, true)); binder.registerCustomEditor(Long.class, null, new CustomNumberEditor( Long.class, null, true)); binder.registerCustomEditor(Boolean.class, null, new CustomBooleanEditor(true)); binder.registerCustomEditor(byte[].class, new ByteArrayMultipartFileEditor()); SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy", request.getLocale()); dateFormat.setLenient(false); binder.registerCustomEditor(Date.class, null, new CustomDateEditor(dateFormat, true)); } }
ramirezag
source share