JSF 2.0 и пример комплектов ресурсов

Пример JSF 2.0 и Resource Bundles

В этом руководстве мы демонстрируем использование пакета ресурсов для отображения сообщений в JSF 2.0. Для удобства сопровождения всегда рекомендуется помещать все сообщения в файл свойств, а не жестко кодировать сообщение на странице напрямую.

1. Файл свойств

Создайте файл свойств, содержащий сообщение для страницы, и поместите его в папку ресурсов проекта, см. Рисунок ниже.

messages.properties

message = This is "message"
message.test1 = This is "message.test1"
message.test2 = This is "

message.test3

" message.test3 = This is "

message.test4

" message.param1 = This is "message.param1" - {0} message.param2 = This is "message.param2" - {0} and {1}

Структура папок проекта.

jsf2-resource-bundles-folder

2. Использование комплектов ресурсов

Есть два способа загрузить файл свойств в JSF 2.0.

1. Global Resource Bundle
Чтобы загрузить файл свойств глобально, чтобы все страницы jsf могли получить доступ к сообщениям. Вы можете создать файл «faces-config.xml» и явно объявить файл свойств.

faces-config.xml



     
      
        com.example.messages
        msg
       
     

2. Local Resource Bundle
Чтобы загрузить файл свойств локально или только для указанной страницы. Объявите тег<f:loadBundle /> на странице, которая должна получить доступ к сообщению вmessages.properties.

3. JSF 2.0 Страницы

В этом случае файлуmessages.properties дается имя «msg», для доступа к сообщению просто используйте «msg.key».

hello.xhtml





    
      

JSF 2.0 and Resource Bundles Examples

4. Как это устроено?

Example 1
Обычный способ доступа к сообщению.



//properties file
message = This is "message"

Example 2
Для ключа с точкой «.» как имя, вы не можете использовать обычный способ\{msg.message.test1}, он не будет работать. Вместо этого вы должны использовать скобку, например\{msg[‘message.test1’]}.



//properties file
message.test1 = This is "message.test1"

Example 3
Чтобы отобразить HTML-тег в сообщении, просто добавьте атрибут «escape» и установите для него значение false.






//properties file
message.test2 = This is "

message.test3

" message.test3 = This is "

message.test4

"

Example 4
Для сообщения с параметрами просто используйте теги<h:outputFormat /> и<f:param / >.


   


   
   


//properties file
message.param1 = This is "message.param1" - {0}
message.param2 = This is "message.param2" - {0} and {1}

Скачать исходный код

Скачать -JSF-2-Resource-Bundles-Example.zip (8KB)