Spring MVC: associazione di 3 menu a discesa a una proprietà della data in SimpleFormController

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

  •  03-07-2019
  •  | 
  •  

Domanda

Come devo configurare la classe per associare tre menu a discesa (data, mese, anno) a una singola proprietà Date in modo che funzioni come funziona per lo scenario "parametro richiesta singola per proprietà"? Immagino che dovrei aggiungere alcuni PropertyEditor personalizzati sovrascrivendo il metodo initBinder. Cos'altro?

È stato utile?

Soluzione

Aleksey Kudryavtsev: puoi sovrascrivere il metodo onBind nel tuo controller, nel quale non puoi armeggiare qualcosa di speciale nell'oggetto comando, come

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();

ma preferirei fare la convalida in javascript e utilizzare alcuni componenti disponibili per la selezione della data, ce ne sono molti ...

Altri suggerimenti

È possibile creare un input nascosto nel modulo e popolarlo utilizzando JavaScript quando l'utente seleziona la data, quindi associarsi a questo input nell'oggetto comando.

Probabilmente userete comunque javascript per cose come controllare la correttezza della data, quindi perché non formattare la data pronta per l'uso in un parametro.

Quindi devi registrare un editor di proprietà che converta dalla stringa "20/05/2008" " all'oggetto Date.

allora avrei tre campi nel mio oggetto comando - anno, mese, giorno e userei la validazione standard della primavera per il controllo della data

Non l'ho provato, ma potresti provare a legare a MutableDateTime nella libreria Joda . Ha setter e getter separati per tutti e tre i campi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top