Exemple JSF 2.0 et ensembles de ressources

Exemple JSF 2.0 et bundles de ressources

Dans ce didacticiel, nous montrons l'utilisation d'un ensemble de ressources pour afficher des messages dans JSF 2.0. Pour des raisons de maintenabilité, il est toujours recommandé de placer tous les messages dans le fichier de propriétés, au lieu de coder en dur le message dans la page.

1. Fichier de propriétés

Créez un fichier de propriétés, contient un message pour la page et placez-le dans le dossier de ressources du projet, voir la figure ci-dessous

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}

Structure du dossier du projet.

jsf2-resource-bundles-folder

2. Utilisation des ensembles de ressources

Il existe deux façons de charger le fichier de propriétés dans JSF 2.0.

1. Global Resource Bundle
Pour charger le fichier de propriétés globalement, afin que toutes les pages jsf puissent accéder aux messages. Vous pouvez créer un fichier «faces-config.xml» et déclarer explicitement le fichier de propriétés.

faces-config.xml


     
      
        com.example.messages
        msg
       
     

2. Local Resource Bundle
Pour charger le fichier de propriétés localement ou pour la page spécifiée uniquement. Déclarez la balise<f:loadBundle /> dans la page qui doit accéder au message dans lesmessages.properties.

3. Pages JSF 2.0

Dans ce cas, le fichiermessages.properties reçoit le nom «msg», pour accéder au message, il suffit d'utiliser «msg.key».

hello.xhtml




    
      

JSF 2.0 and Resource Bundles Examples

4. Comment ça fonctionne?

Example 1
Une manière normale d'accéder au message.



//properties file
message = This is "message"

Example 2
Pour une clé comportant un point «.» comme nom, vous ne pouvez pas utiliser la manière normale\{msg.message.test1}, cela ne fonctionnera pas. Au lieu de cela, vous devez utiliser un crochet comme\{msg[‘message.test1’]}.



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

Example 3
Pour afficher la balise HTML dans le message, ajoutez simplement l'attribut «escape» et définissez-le sur false.






//properties file
message.test2 = This is "

message.test3

" message.test3 = This is "

message.test4

"

Example 4
Pour un message de paramètre, utilisez simplement les balises<h:outputFormat /> et<f:param / >.


   


   
   


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

Télécharger le code source

Téléchargez-le -JSF-2-Resource-Bundles-Example.zip (8 Ko)