aplicación Mis Grails tiene un gran número de enumeraciones que se parecen a esto:Griales unen parámetros de la petición es posible enumerar los
public enum Rating {
BEST("be"), GOOD("go"), AVERAGE("av"), BAD("ba"), WORST("wo")
final String id
private RateType(String id) {
this.id = id
}
static public RateType getEnumFromId(String value) {
values().find {it.id == value }
}
}
Si tengo un objeto de comando como este:
class MyCommand {
Rating rating
}
me gustaría para (por ejemplo) convertir automáticamente un parámetro de solicitud con el valor "wo" a Rating.WORST.
El procedimiento para definir convertidores personalizados se describe here (en el contexto de la conversión de cadenas a fechas). Aunque este procedimiento funciona bien, no quiero tener que crear una clase que implemente PropertyEditorSupport para cada una de mis enums. ¿Hay una mejor alternativa?
¡Buen trabajo! Estoy luchando con el mismo problema. ¿Por qué diablos no es esta una parte estándar de Grails? El soporte de Grails para enlazar parámetros de solicitud a objetos de dominio/comando es realmente horrible. – mcv
Grails admite los parámetros de solicitud de enlace a enumeraciones, pero el valor predeterminado se vincula por nombre. Si desea enlazar con alguna otra propiedad enum (por ejemplo, mediante id, como se indica anteriormente), debe definir el enlace usted mismo –