2013-07-11 93 views
2

我有一个JSP页面,我使用Struts构建我的选择标签。 JSP代码如下:使用Enumsubset创建Struts2选择标签

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

此代码生成一个带有我的枚举常量的选择字段。 我想要做的只是创建只有Enum子集的字段。 我该怎么办?可能吗?

+0

子集基于什么?你想检查一些条件? –

+0

'list =“@ it ........ Enum @ values()”'取得了我枚举的所有值,我想除了一个之外的所有值。 – Emaborsa

回答

2

您可以对此使用OGNL投影。

<s:select list="@[email protected]().{? #this != @[email protected]_TO_EXCLUDE}" /> 

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

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

<s:select list="@[email protected]().{? #this.toString() != 'ENUM_TO_EXCLUDE'}" /> 
+0

Thx for reply ...我尝试过,但我得到一个异常“无法解析为集合” – Emaborsa

+0

@Emaborsa:你是否正确键入要排除的枚举值? –

+0

@Emaborsa:你能显示你的实际枚举代码吗? –

相关问题