Struts 2 s: select со значениями из пакета ресурсов

Мы используем s:select, чтобы показать список строк из пакета ресурсов.

В действии:

//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

....

В ЖСП:

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

Поскольку список банков равен List<String>, мы использовали toString() для получения ключа и использовали toString() для получения значения из набора ресурсов.

Я обнаружил, что у s:select есть атрибут status, такой же, как у s:iterator, но я не смог найти ни одного!

Итак, вы думаете, что есть лучшие способы?!


person Alireza Fattahi    schedule 06.05.2014    source источник
comment
Не уверен, почему вы ожидаете этого; <s:select> должен быть автономным. Он не раскрывает свою итерацию. Лично я думаю, что вы должны создавать эти данные где-то на уровне Java и предоставлять их тегу через действие или помощник.   -  person Dave Newton    schedule 06.05.2014
comment
Положение дел? Зачем тебе статус? Используйте ключевое слово top.   -  person Aleksandr M    schedule 06.05.2014
comment
+1 @AleksandrM спасибо! где вы находите это ключевое слово?! Я много искал!   -  person Alireza Fattahi    schedule 06.05.2014


Ответы (1)


Вам вообще не нужно вызывать toString() в атрибуте listKey, чтобы вы могли удалить этот атрибут. А в listValue можно использовать ключевое слово top.

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

Ключевое слово top упоминается здесь и здесь в примерах.

person Aleksandr M    schedule 06.05.2014