2009-12-30 7 views
0

J'ai changé ag: champ de sélection à une saisie semi-automatique Yui (sans utiliser le plugin Yui) et maintenant je reçois:Grails g: choisir de saisie semi-automatique

Failed to convert property value of type [java.lang.String] to required type... 

println les params dans le contrôleur semble identique dans les deux cas.

Je peux aller de l'avant et utiliser l'identifiant de chaîne dans les paramètres et obtenir l'objet de domaine requis, mais je voudrais utiliser le classeur.

Je suppose que c'est la façon dont le binder fonctionne mais n'a pas pu trouver le problème.

Est-il possible de l'obtenir pour lier l'objet en utilisant l'ID comme lors de l'utilisation de g: select?

Merci, Guy

+1

Pouvez-vous poster votre code s'il vous plaît? C'est difficile à comprendre d'après votre description. Si vous pouvez poster le code qui fonctionne et le code qui le brise serait utile. – Shaun

Répondre

1

Le problème est que le nom de la sélection est probablement quelque chose comme property.id et Binder va essayer de rechercher l'basesd d'objet sur l'id (qui est un int) et ce ne peut pas être converti en chaîne.

Vous devrez peut-être modifier l'attribut name et écrire du code pour « déréférencement » le paramètre en utilisant quelque chose comme FindByName pour trouver l'objet d'assigner à savoir

def propValue = Lookup.findByName(params.propertyName); 
objectInstance.property = propValue; 

Assurez-vous que le nouveau nom n'est pas le même en tant que propriété existante de la classe sinon le classeur essayera d'assigner la chaîne à la propriété. À moins d'une raison votre propriété est est une chaîne ....

Espérons que cela aide.

Questions connexes