Чтобы добавить к предыдущему ответу, добавьте его в объявление Enum:
public String getLabel() {
return play.i18n.Messages.get(name());
}
Обязательно используйте следующую декларацию:
#{select "[field]", items:models.[Enum].values(), valueProperty:'name', labelProperty: 'label' /}
Вы также можете добавить это в Enum:
@Override
public String toString() {
return getLabel();
}
Это будет полезно, если вы хотите отобразить интернационализированное значение в вашем файле представления (поскольку toString вызывается автоматически при отображении), но функция name () использует toString (), поэтому вам придется привязать valueProperty к другой функции, так как следовать:
public String getLabel(){
return toString();
}
public String getKey() {
return super.toString();
}
@Override
public String toString() {
return Messages.get(name());
}
И #select использовать:
#{select "[field]", items:models.[Enum].values(), value:flash.[field], valueProperty:'key', labelProperty: 'label' /}