2013-07-11 98 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:你能顯示你的實際枚舉代碼嗎? –

相關問題