Отображение разных имен для значений в теге выбора Struts2

У меня есть следующее перечисление

public enum AccountType {
  ADMIN,
  MANAGER
}

Теперь в моей форме Struts у меня есть следующий тег:

<s:select name="account.accountType" list="{'ADMIN', 'MANAGER'}" />

Это создаст следующее поле.

введите здесь описание изображения

Есть ли способ заставить его генерировать Администратора вместо АДМИНИСТРАТОРА и Менеджера вместо МЕНЕДЖЕРА без редактирования перечисления на бэкэнде?


person Bravo    schedule 17.02.2015    source источник


Ответы (1)


В S2 вместо жесткого кодирования значений перечисления в список в JSP вы можете напрямую извлекать значения из самого перечисления, используя нотацию @package.Enum@values(). И используйте атрибут listValue, чтобы показать все, что вы хотите, на основе некоторых условий.

Например:

<s:select name="account.accountType" list="@com.AccountType@values()"
          listValue="top == @com.AccountType@ADMIN ? 'Administrator' : top" />
person Aleksandr M    schedule 17.02.2015