2013-05-23 2 views
1

Я переношу приложение от Struts 1.1 в Struts 2.3. Существующее приложение использует MessageResources из старой структуры следующим образом.Альтернативный пакет ресурсов сообщений Struts 2

<message-resources key="label" parameter="com.abc.xyz.resources.MyLabelResources"/> 
<message-resources key="image" parameter="com.abc.xyz.resources.MyImageResources"/> 

Этого путь различных ресурсы файлы разделены, и всякий раз, когда просмотровый сделано, ключ расслоения задаются так, что она ищет только конкретный файл.

Основываясь на моем понимании на основе Struts 2.2, я пришел к выводу, что мне нужен глобальный файл свойств, который будет работать для меня. Тем не менее, я хотел бы создать несколько глобальных файлов свойств, например, для меток и изображений, например, как это работает в существующем приложении (см. Выше).

Я не уверен, как я это делаю.

ответ

1

Если вы хотите, чтобы искать в конкретном файле только тогда вы можете использовать <s:i18n> тег.

Используя getText метод, если ваше действие распространяется ActionSupport

<s:i18n name="labels"> 
    <s:property value="getText('some.label')" /> 
</s:i18n> 

или с помощью <s:text> тег

<s:i18n name="labels"> 
    <s:text name="some.label" /> 
</s:i18n> 

Но вы также можете включать более одного свойства файлы наборов ресурсов пользовательских умолчанию:

<constant name="struts.custom.i18n.resources" value="images, labels" /> 
+0

Что такое изображения и ярлыки i В этом случае? – shabeena

+0

@shabeena: Свойства файлов (например, images.properties, labels.properties). –

+0

У меня получилось. И как я могу указать, к какому файлу я хочу обратиться? – shabeena

0

Использование командной i18n тег

Получает пакет ресурсов и поместить его в стек значение. Это позволяет текстовому тегу получать доступ к сообщениям из любого пакета, а не только к пакету, связанному с текущим действием.

загрузить пакет ресурсов в стек значений и использовать его.


Как в this пример.

Получает пакет ресурсов и поместить его в стек значение. Это позволяет текстовый тег для доступа к сообщениям из любого пакета, а не только пакет , связанный с текущим действием.

name* - the resource bundle's name (eg foo/bar/customBundle) 

Пример:

<s:i18n name="myCustomBundle"> 
    The i18n value for key aaa.bbb.ccc in myCustomBundle is <s:property value="text('aaa.bbb.ccc')" /> 
</s:i18n> 

<s:i18n name="some.package.bundle" > 
     <s:text name="some.key" /> 
</s:i18n> 

Смежные вопросы