Petite proposition pour la FAQ
Comment utiliser les resourceBundle avec JSF (seconde méthode) ?
Il existe certains cas où la première méthode proposée avec <f:loadbundle> ne fonctionne pas. C'est par exemple le cas du message d'erreur que l'on insère par l'attribut "requiredMessage" sur un <h:inputText>. La raison de cette limitation tient au cycle de vie des composants JSF et au fait que <f:loadbundle> initialise une variable qui a la requête comme scope.
Un second moyen d'initialiser un resourceBundle est d'en définir une référence directement à partir du faces-config.xml :
1 2 3 4 5 6 7 8 9 10 11 12
| <application>
<message-bundle>my.package.bundle</message-bundle>
<resource-bundle>
<base-name>my.package.bundle</base-name>
<var>bundlemessages</var>
</resource-bundle>
<locale-config>
<default-locale>fr</default-locale>
<supported-locale>en</supported-locale>
<supported-locale>fr</supported-locale>
</locale-config>
</application> |
En admettant ici que le package "my.package" contient bundle_fr.properties et bundle_en.properties.
L'appel se fait ensuite par exemple avec :
<h:inputText value="#{myBean.myField}" required="true" requiredMessage="#{bundlemessages.fieldErrorMessage}">
Partager