2014-05-06 37 views
6

我們使用s:select來顯示資源包中字符串的列表。Struts 2 s:使用資源包中的值進行選擇

在行動:

//bank codes will be something [12,13,14] 
List<String> bankCodesList; //with setter and getter 
String selectedBankCode; 

在信息資源,每家銀行都會有一個名字:

bank.code.12= ALFM Bank 
bank.code.13= RIHN Bank 

.... 

在JSP:

<s:select name = "selectedBankCode" 
      list = "bankCodesList"   
      listKey = "toString()" 
     listValue = "%{getText('bank.code.' + toString())}" /> 

由於銀行名單是List<String>我們使用toString()來獲得密鑰,並使用toString()從資源包中獲取價值。

我例外地找到s:select有一個status屬性相同s:iterator但我找不到任何!

所以你認爲有更好的辦法?

+1

不知道你爲什麼期望; ''是爲了自給自足。它不公開它的迭代。就我個人而言,我認爲你應該在Java層的某個地方建立這些數據,並通過行動或幫手將它提供給標籤。 –

+2

狀態?你爲什麼需要身份?使用'top'關鍵字。 –

+0

+1 @AleksandrM謝謝!你在哪裏找到這個關鍵字?我搜索了很多! –

回答

7

根本不需要在listKey屬性中調用toString(),因此您可以刪除該屬性。而在listValue中,您可以使用top關鍵字。

<s:select name = "selectedBankCode" 
      list = "bankCodesList" 
    listValue = "%{getText('bank.code.' + top)}" /> 

top的關鍵字被提及在實施例herehere