Cuando se usa SpringMVC, a menudo encuentra conversiones entre las cadenas de fecha en el formulario y el tipo de fecha de Javabean, mientras que SpringMVC no admite conversiones en este formato de forma predeterminada, por lo que debe configurar y personalizar manualmente el enlace de datos para resolver este problema.
Use la anotación SpringMVC @InitBinder y la clase WebDateBinder de Spring para operar en controladores que requieren una conversión de fecha.
WebDatabinder se utiliza para vincular los parámetros de solicitud al editor de propiedades especificados. Dado que el valor pasado al controlador en primer plano es de tipo de cadena, cuando el valor establecido en el modelo, si la propiedad de SET es un objeto, Spring encontrará el editor correspondiente para la conversión y luego lo establecerá.
El código es el siguiente:
@InitBinder public void initBinder (WebDatabinder Binder) {SimpleDateFormat dateFormat = new SimpleDateFormat ("yyyy-mm-dd"); dateFormat.setLenient (falso); Binder.RegisterCustomEditor (date.class, new CustomDateEditor (dateFormat, true)); }Necesita agregar el archivo de configuración en SpringMVC
<
Cambio de escritura
<mvc: annotation-driven> <mvc: mensajes-Converters> <Bean> <constructor-arg value = "utf-8"/> </bean> </mvc: message-Converters> </mvc: annotation-driven>
expandir:
Spring MVC registrará estos editores antes de vincular el formulario. Spring en sí mismo proporciona una gran cantidad de clases de implementación, como CustomDateEditor, CustomBooleanEditor, CustomNumberEditor, etc., que básicamente son suficientes.
Llame al método RegistroCustomEditor de WebDatabinder cuando use
Código fuente de RegistroCustomEditor:
public void RegistroCustomEditor (clase <?> RequestIntype, PropertyEditor PropertyEditor) {getPropertyEditorRegistry (). RegistroCustomEditor (requirido Type, PropertyEditor);} El primer parámetro requerido Type es el tipo que debe convertirse.
El segundo parámetro PropertyEditor es el editor de propiedades, que es una interfaz. Los ejemplos mencionados anteriormente, como CustomDateEditor, todos heredan la clase PropertyEditorsupport que implementa esta interfaz.
Tampoco podemos usar estas clases de editor que vienen con ellas.
Podemos construirnos:
importar org.springframework.beans.propertyeDitors.propertiesEditor; public class DoubleEditor extiende PropertyEditorSupport {@Override public void setastext (texto de cadena) arroja ilegalArgumentException {if (text == null || text.equals ("")) {text = "0"; } setValue (double.parsedubo (text)); } @Override public String getastext () {return getValue (). ToString (); }}Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.