Показване на различни имена за стойности в маркера за избор на Struts2

Имам следното enum

public enum AccountType {
  ADMIN,
  MANAGER
}

Сега в моя Struts формуляр имам следния етикет:

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

Това ще генерира следното поле.

въведете описание на изображението тук

Има ли някакъв начин да го накарате да генерира Administrator вместо ADMIN и Manager вместо MANAGER, без да редактирате enum в бекенда?


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


Отговори (1)


В S2, вместо да кодирате твърдо вашите enum стойности в списък в JSP, можете директно да извличате стойности от самото enum, като използвате @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