Spring MVC: Enlace de 3 menús desplegables a una propiedad de fecha en SimpleFormController

StackOverflow https://stackoverflow.com/questions/161485

  •  03-07-2019
  •  | 
  •  

Pregunta

¿Cómo debo configurar la clase para enlazar tres menús desplegables (fecha, mes, año) a una propiedad de Fecha única para que funcione de la forma en que funciona para el escenario de "parámetro de solicitud única por propiedad"? Supongo que debería agregar algunos PropertyEditors personalizados anulando el método initBinder. ¿Qué más?

¿Fue útil?

Solución

Aleksey Kudryavtsev: puede anular el método onBind en su controlador, en el que no puede manipular algo especial en el objeto de comando, como

dateField = new SimpleFormat("YYYY-mm-dd").parse(this.year + "-" + this.month + "-" this.day);

o:

Calendar c = Calendar.getInstance();
c.set(year, month, day);
dateField = calendar.getTime();

pero preferiría hacer la validación en javascript y utilizar algún componente de selector de fecha disponible, hay muchos de ellos ...

Otros consejos

Puede crear una entrada oculta en su formulario y rellenarla con JavaScript cuando el usuario selecciona la fecha, luego vincular esta entrada en su objeto de comando.

Probablemente estará usando javascript de todos modos para cosas como verificar la exactitud de la fecha, así que ¿por qué no formatear la fecha de lista para usar en un solo parámetro?

Luego, debe registrar un editor de propiedades que se convertiría de la cadena " 2008-05-20 " al objeto Date.

entonces tendría tres campos en mi objeto de comando: año, mes, día y utilizaría la validación estándar de primavera para verificar la fecha

No lo he intentado, pero puedes intentar vincular a MutableDateTime en la biblioteca Joda . Tiene setters y getters separados para los tres campos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top