Struts 2 s:select with values from resource bundle

2019-04-28 09:02发布

问题:

We are using the s:select to show a list of string from resource bundle.

In the Action:

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

In the message resources each bank will have a name:

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

....

In the JSP:

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

As the bank list is List<String> we used toString() to get the key and used toString() to get value from resource bundle.

I excepted to find the s:select has a status attribute same as s:iterator but I could not find any!

So you think there are better ways?!

回答1:

You don't need to call toString() in listKey attribute at all so you can remove this attribute. And in listValue you can use top keyword.

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

The top keyword is mentioned here and here in the examples.