Graal GORM & Enums
J'ai un problème à l'aide de l'Énumération dans Graal:
J'essaie d'utiliser un enumeraion dans un grain de domaine objet
code:
package it.xxx.tools.kanban
import java.util.Date;
class Task {
String name
String description
Priority priority
static belongsTo = [user:User, project:Project]
static constraints = {
name(nullable:false, maxSize:25)
description(nullable:false, maxSize:1500)
priority(nullable:true)
}
}
package it.xxx.tools.kanban;
public enum Priority {
VERY_LOW("Very Low"),
LOW("Low"),
MEDIUM("Medium"),
HIGH("High"),
VERY_HIGH("Very High")
private final String value
Priority(String value){
this.value = value;
}
String toString() {
value
}
String getKey() {
name()
}
static list(){
[VERY_LOW, LOW, MEDIUM, HIGH, VERY_HIGH]
}
}
<tr class="prop">
<td valign="top" class="name">
<label for="priority">Priority:</label>
</td>
<td valign="top" class="value ${hasErrors(bean:taskInstance,field:'priority','errors')}">
<g:select from="${it.weservice.tools.kanban.Priority?.values()}" value="${taskInstance?.priority}" name="priority" noSelection="['':'']"></g:select>
</td>
</tr>
- Je utiliser le graal de générer-commande tout
Quand j'essaie d'enregistrer via l'application web la Tâche de l'objet, j'ai l'erreur suivante:
Failed to convert property value of type [java.lang.String] to required type [it.weservice.tools.kanban.Priority] for property priority; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [java.lang.String] to required type [it.weservice.tools.kanban.Priority] for property priority: no matching editors or conversion strategy found
Quelle est la version du Graal utilisez-vous?
Je suis en utilisant le graal 1.1.1
Je suis en utilisant le graal 1.1.1
OriginalL'auteur pbanfi | 2009-12-28
Vous devez vous connecter pour publier un commentaire.
Je réponds à ma propre question, parce que les autres utilisateurs peuvent le trouver utile:
j'ai vérifié le graal des conseils sur les enums ici (en bas de la page)
Dans mon application j'ai oublié le optionKey="key" dans le g:balise select
En ajoutant que tous les woked en douceur
OriginalL'auteur pbanfi
Vous avez besoin pour changer la vue, par exemple, ajouter
optionValue="value"
sur la sélectionner dans le créer.spg.Vous n'avez pas besoin:
Yo besoin d'avoir un
getValue()
, le changementprivate final String value
àfinal String value
.Plus d'informations (en espagnol): http://thewhitehatsolution.wordpress.com/
OriginalL'auteur Ricardo Yepes
Si vous utilisez échafaudage = true dans votre contrôleur, vous pouvez également modifier le modèle qui génère le sélectionner des étiquettes dans les vues en modifiant le renderEditor.fichier de modèle. Pour ce faire :
OriginalL'auteur Philippe