Получите ценность от пакетов ресурсов, используя замену в Struts 2

Как получить локализованный текст в пакетах ресурсов с помощью подставленного ключа?

Я пробовал следующий код, но не работал:

<s:i18n name="global">
  <s:text name="${top[0]}"></s:text>
</s:i18n>

Я использую <s:iterator value="#request.myArray">, где myArray — это ArrayList пар строк, и каждый элемент массива представляет собой ключ из пакета ресурсов.

ex: [{"a","1"},{"b","2"},{"c","3"}]

    <s:iterator value="#request.myArray">
    <tr>
        <td>
            <s:i18n name="global">
                <s:text name="${top[0]}"></s:text>
            </s:i18n>
            <s:property />
        </td>
      </tr>

</s:iterator>

а ${top[0]} это a,b,c и т.д.


person Ariana    schedule 07.03.2017    source источник
comment
Что вы имеете в виду под заменой? <s:text name="foo.bar" /> достаточно, чтобы получить значение из ключа foo.bar в наиболее подходящем пакете, в соответствии с выбранной локалью, если таковая имеется   -  person Andrea Ligios    schedule 07.03.2017


Ответы (2)


Вы не можете использовать EL внутри атрибутов тегов Struts. Но вы можете использовать OGNL.

<s:text name="%{top[0]}"></s:text>
person Roman C    schedule 07.03.2017

Попробуй это:

<s:text name="global">
   <s:param>${top[0]}</s:param>
</s:text>

где т.е.:

global = some text with param {0}
person fustaki    schedule 07.03.2017