Dans mon domaine grails, j'ai un champ Date java.util.Date.Grails La date est acceptée en tant que chaîne
Dans mon contrôleur, je charge cette date à partir des paramètres à l'aide de SimpleDateFormate.
Pour être précis, supposons que params.date soit quelque chose comme '20/02/2013 02:30 am '. Dans le contrôleur je charge comme suit:
SimpleDateFormat simpleDateFormat = nouveau SimpleDateFormat ("jj/mm/aaaa HH: mm a"); domainInstance.date = simpleDateFormat.parse (params.date)
Lorsque cette instruction s'exécute, aucune erreur n'est détectée. Toutefois, lorsque l'instance de domaine est en cours d'enregistrement, une erreur est générée.
[typeMismatch.Domain.date, typeMismatch.date, typeMismatch.java.util.Date, typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes
[Echec de la conversion de la valeur de propriété du type 'java.lang.String' en le type requis 'java.util.Date' pour la propriété 'date'; l'exception imbriquée est java.lang.IllegalArgumentException: Impossible d'analyser la date: Date impossible: "20/02/2013 02:30 am"]
Pouvez-vous me dire où les choses vont mal? Je suis à peu près sûr que SimpleDateFormat analyse String to Date. Pourquoi accepte-t-il en tant que chaîne?
nous pouvons regarder l'ensemble du code source dans cette méthode? après cette ligne de code (domainInstance.date = simpleDateFormat.parse (params.date)), vous avez peut-être réaffecté le champ 'date' avec la valeur de la chaîne à partir des paramètres. – hida
Les changements depuis 2.3 jetez un coup d'oeil ici: http://grails.1312388.n4.nabble.com/data-binding-dates-in-command-objects-td4651879.html @BindingFormat ('MMddyyyy') Vous pouvez également définir le formats par défaut avec quelque chose comme ça dans Config.groovy: grails.databinding.dateFormats = ['MMddyyyy', 'aaaa-MM-jj HH: mm: ss.S', "aaaa-MM-dd'T'hh: mm: ss'Z '"] – Vahid