为 Struts2 select 标签中的值显示不同的名称

Display different names for values in Struts2 select tag

我有以下枚举

public enum AccountType {
  ADMIN,
  MANAGER
}

现在,在我的 Struts 表单中,我有以下标签:

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

这将生成以下字段。

有没有办法让它生成 Administrator 而不是 ADMIN 和 Manager 而不是 MANAGER 而无需在后端编辑枚举?

在 S2 中,您可以使用 @package.Enum@values() 符号直接从枚举本身检索值,而不是将您的枚举值硬编码到 JSP 列表中。并使用 listValue 属性根据某些条件显示您想要的任何内容。

例如:

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