使用Enumsubset创建Struts2选择标记

使用Enumsubset创建Struts2选择标记,struts2,ognl,html-select,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())" headerKe

我有一个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.')}" 
/>

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

您可以使用OGNL投影进行此操作

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

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

如果比较枚举无效,则可以比较字符串

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


基于什么的子集?是否要检查某些条件?'list=“@it…”。。。。。。。。Enum@values()“')获取我的枚举的所有值,我想获取除一个以外的所有值。Thx用于答复…我尝试了,但得到了一个异常“无法作为集合解析”@Emaborsa:您是否正确键入了要排除的枚举值?@Emaborsa:是的,您还可以比较枚举字符串。应该
values()。{?#this!=@it。。Enum@RIUTILIZZO}
也可以吗?事实上没有