2010-11-05 20 views
0

Je rencontre des problèmes avec la balise, puis la mise à jour de mon attribut Date à partir d'un modèle avec les paramètres envoyés.Date params form issue

Voici mon tag:

<g:datePicker name="data" value="${controle.data}" precision="month" 
     years="${(Calendar.getInstance().get(Calendar.YEAR)-70)..Calendar.getInstance().get(Calendar.YEAR)}"/> 

Quand je println le "params.data" il dit "struct", mais je ne peux pas simplement faire:

model.data = params.data 

les params est livré avec params.data_month et params.data_year avec les valeurs dans la chaîne comme respectives:

[[data:struct], [data_month:1], [data_year:2009]] 

j'ai essayé de le faire alors:

model.data = new SimpleDateFormat("MM/yyyy").parse("${params.data_month}/${params.data_year}") 

mais il rejette la valeur, d'alerte: "Impossible de convertir la valeur de type [java.lang.String] type requis [java.util.Date] pour 'données' propriété"

println model.data 
println new SimpleDateFormat("MM/yyyy").parse("${params.data_month}/${params.data_year}") 

--shows 

2006-01-01 00:00:00.0 
Sun Jan 01 00:00:00 BRST 2006 

Répondre

1

mais je ne peux pas simplement faire: model.data = params.data

Pourquoi pas? Avez-vous une exception, ou êtes-vous simplement induit en erreur par une documentation périmée? -
Ceci est une caractéristique since Grails 1.2. La conversion en type Date sera effectuée automatiquement.

En ce qui concerne la question SimpleDateFormat, ajoutez juste un jours, comme ceci:

model.data = new SimpleDateFormat("d/MM/yyyy").parse(
    "1/${params.data_month}/${params.data_year}")