2010-08-24 3 views
2

Je souhaite utiliser mon ensemble de messages (messages_fr.properties) dans une classe Java avec seam.Utiliser l'ensemble de messages en classe Java avec Seam

Dans un fichier JSF, tout fonctionne bien comme ça:

<h2>#{msg.newCustomer}</h2> 

Mais dans ma classe Java, j'ai essayé de le faire:

statusMessages.addToControlFromResourceBundle("refArbor", "#{messages['error_refArborDoesntExist']}"); 

ou ceci:

statusMessages.addToControlFromResourceBundle("refArbor", "error_refArborDoesntExist"); 

ou encore ceci:

statusMessages.addToControlFromResourceBundle("refArbor", "#{msg.error_refArborDoesntExist}"); 

Mais le message est montrées:

error_refArborDoesntExist

Et pas le vrai message.

Comment puis-je utiliser mon bundle est une classe Java?

Merci.

Répondre

1

Il travaille avec votre solution:

@In 
private Map<String, String> messages; 

Il suffit de placer les messages.properties dans WEB-INF/classes/

4

J'injecte habituellement le groupe de ressources ou la ressource dans la classe et l'utilise à partir de là. Exemple:

@In("#{messages['name']}") 
private String name 

Ou,

@In 
private Map<String, String> messages; 

Wich injecte le resourceBundle comme une carte. (Assurez-vous que les messages sont nommés dans ce cas).

+0

Avec elle, les messages Map sont vides, comment déclarez-vous messages.properties dans components.xml? – Kiva

+0

L'injection ne fonctionne pas dans les classes annotées @Entity, essayez la solution suggérée par gadeynebram – DaveB

2

Vous pouvez le faire de plusieurs façons.

StatusMessages.instance().addFromResourceBundle("msg.newCustomer); 
//This will add the msg.newCustomer message to the view 

String msg = org.jboss.seam.international.Messages.instance().get("msg.newCustomer); 
//This will put the msg.newCustomer message in variable msg 
+0

Quel est le paquet pour la classe Messages? – Kiva

+0

'org.jboss.seam.international.Messages' La réponse est éditée –

+0

org.jboss.seam.international.Messages.instance(). Get (" un message "); fonctionnera même sans un contexte de page! Oui!!! Je peux l'employer pour mettre en place des énumérations qui chargent leurs articles des paquets de message qui sont les mêmes utilisés par mes pages de JSF! MERCI MERCI MERCI!!!! – ggb667

1

String msg = org.jboss.seam.international.Messages.instance().get("key") travaillé pour moi!

J'ai eu le même problème en utilisant un bean entité.