tipo recorrer enum grails select enums gsp scaffolding

grails - tipo - recorrer enum java



usar el valor de enum en g: seleccionar cuando enum es el atributo del objeto de selección (2)

Ejemplo:

batchTag es un atributo de tipo enumerado de un batchRange, con valores como los siguientes:

JAN1 "January Biweekly 1", JAN2 "January Biweekly 2",

etc.

Quiero mostrar el VALOR de la etiqueta de lote en la selección, IOW, la selección debe contener

"January Biweekly 1" "January Biweekly 2" ...

no

JAN1 JAN2 FEB1 FEB2 FEB3 ...

He intentado varias cosas en la g: seleccionar para hacer esto, pero sin éxito. Pensé que quizás "eso" estaría disponible como parte de g: select (ya que es claramente una iteración) y traté de hacer referencia a it.batchTag.name para optionValue, pero eso no funcionó. ¿Alguna sugerencia?

¡Gracias!


enum BatchRange { JAN1 "January Biweekly 1", JAN2 "January Biweekly 2", final String value BatchRange(String value) { this.value = value } String toString() { value } String getKey() { name() } }

Tenga en cuenta el método getKey (). Y luego tu g: seleccionar

<g:select name="batch" from="${BatchRange.values()}" optionKey="key" />

o

<g:select name="batch" from="${BatchRange.values()}" keys="${BatchRange.values()*.name()}" />


Un mejor enfoque sería usar mensajes i18n en este caso. Hay dos opciones:

  1. Agregue valueMessagePrefix a la selección.
  2. Haga que la enumeración implemente org.springframework.context.MessageSourceResolvable como se describe en esta publicación de blog .

Vea esta pregunta para más información.