J'ai un fichier de propriétés pour la localisation:JSF 2 localisation (managed bean)
foo=Bar
title=Widget Application
Ceci est lié en tant resource-bundle
dans les faces-config:
<resource-bundle>
<base-name>com.example.messages.messages</base-name>
<var>msgs</var>
</resource-bundle>
Je peux accéder à ce juste bien dans la facelets vue en utilisant EL:
<title>#{msgs.title}</title>
Cependant, s'il y a des choses comme SQLExceptions, j'ai besoin être capable d'écrire des messages à partir du bean géré. Tout cela est travaille également:
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "There was an error saving this widget.", null);
FacesContext.getCurrentInstance().addMessage(null, message);
Voici la question: je veux avoir ces messages proviennent des propriétés fichier afin qu'eux aussi, peuvent être modifiés en fonction des paramètres régionaux. Existe-t-il un moyen facile d'accéder au fichier de propriétés en utilisant l'injection?
J'ai vu cela quand je l'ai googlé. Cependant, y a-t-il une façon plus élégante d'injecter le conteneur en utilisant @Resource ("# {msgs}") ou quelque chose comme ça? Je suppose, puisque j'utilise CDI, que je pourrais créer un producteur de '@ MessageBundle' ou quelque chose, et ensuite passer juste un objet' Properties' ... –
J'ai utilisé cette approche dans un de nos derniers projets - nous avions le même problème avec les erreurs de DB. Je peux jeter un oeil à l'ancienne source mercredi mercredi si cela n'est toujours pas résolu. – Lars
Vous avez raison de dire que c'est une façon valable de le faire. Je me demandais juste s'il y avait un moyen de le faire plus élégamment. Je peux juste utiliser CDI pour l'injecter. Cela fonctionnera s'il n'y a pas d'annotation intégrée. –