используя значения enum в г:выберите при enum-это атрибут выбора объекта
пример:
batchTag-это атрибут перечисляемого типа batchRange со значениями типа:
JAN1 "January Biweekly 1",
JAN2 "January Biweekly 2",
etc.
Я хочу отобразить значение batchTag в select, IOW, select должен содержать
"January Biweekly 1"
"January Biweekly 2" ...
не
JAN1
JAN2
FEB1
FEB2
FEB3 ...
Я пробовал несколько вещей в g: выберите, чтобы сделать это, но без успеха. Я думал, что, возможно, "это" будет доступно как часть g: select (как это ясно итерация) и попытался ссылаться на нее.batchTag.имя для optionValue, но это не сработало. Есть предложения?
спасибо!
2 ответов
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() }
}
обратите внимание на метод getKey (). А затем ваш g: выберите
<g:select name="batch" from="${BatchRange.values()}" optionKey="key" />
или
<g:select name="batch" from="${BatchRange.values()}" keys="${BatchRange.values()*.name()}" />
лучшим подходом было бы использовать сообщения i18n в этом случае. Есть два варианта:
- добавить valueMessagePrefix в select.
- сделайте перечисление реализовать
org.springframework.context.MessageSourceResolvable
как описано в этот блог.
посмотреть этот вопрос для получения дополнительной информации.