使用Enumsubset创建Struts2选择标记

时间:2013-07-11 15:06:19

标签: struts2 ognl html-select

我有一个JSP页面,我使用Struts来构建我的select标签。 JSP代码如下:

<s:select
    required="true"
    name="form.tipologia"
    label="%{getText('Enum.label')}"
    list="@it........Enum@values()"
    listKey="name()"
    listValue="getText('Enum.' + name())"
    headerKey=""
    headerValue="%{getText('Enum.')}" 
/>

这段代码生成了一个带有Enum常量的select字段。 我想要做的是创建仅包含Enum子集的字段。 我该怎么做?有可能吗?

1 个答案:

答案 0 :(得分:2)

您可以使用OGNL投影。

<s:select list="@it..Enum@values().{? #this != @it..Enum@ENUM_TO_EXCLUDE}" />

这将创建除要排除的枚举值之外的所有枚举值的子集。

如果比较枚举不起作用,那么你可以比较字符串。

<s:select list="@it..Enum@values().{? #this.toString() != 'ENUM_TO_EXCLUDE'}" />