Ho una data (come stringa) inviata. Mi piacerebbe mappare questo a un oggetto comando. Mi sono guardato intorno un po 'e non ho trovato nessuna grande risorsa su come eseguire questa mappatura all'interno di un oggetto comando ad una data reale.bind date to command object in Grails
Se dovessi farlo nel controller stesso, potrei semplicemente fare quanto segue, tuttavia questo non mi permette di mappare facilmente il mio oggetto comando.
def endDate = params.date('endDate', 'MM/dd/yyyy')
Per il mio oggetto di comando, la più vicina sono stato in grado di ottenere è quello di ignorare il getter e setter per l'oggetto data. Entrambi devono essere sovrascritti oppure il setter non viene utilizzato. Questo è quello che ho provato per la prima volta (imposta String to Date, ma ottieni la Data). Quindi questo non utilizza il setter:
@grails.validation.Validateable
class TaskCreateCommand {
Date startDate
public void setStartDate(String dateStr){
this.start = Date.parse('MM/dd/yyyy', dateStr)
}
}
Questo non dà alcun problema di runtime, ma è inutile perché non riesco a tirare fuori l'oggetto data effettiva.
@grails.validation.Validateable
class TaskCreateCommand {
Date startDate
public void setStartDate(String dateStr){
this.start = Date.parse('MM/dd/yyyy', dateStr)
}
public String getStartDate(){
return start.toString()
}
}
La risposta è stata utile? – dmahapatro