2008-09-15 3 views
4

Si je possède un fichier de propriétés de regroupement de ressources:ResourceBundle de Java/Struts et remplacer les expressions

A.properties: thekey = {0} Ceci est un test

Et puis j'ai le code java qui charge le faisceau de ressources:

ResourceBundle labels = 
    ResourceBundle.getBundle("A", currentLocale); 
labels.getString("thekey"); 

Comment puis-je remplacer le {0} texte avec une valeur

labels.getString ("thekey", "Oui !!!");

telle que la sortie sort comme:

Oui !!! C'est un test.

Aucune méthode ne fait partie de Resource Bundle pour cela. En outre, je suis dans Struts, est-il un moyen d'utiliser MessageProperties pour faire le remplacement.

Répondre

11

La classe que vous cherchez est java.text.MessageFormat; en particulier, appelant

MessageFormat.format("{0} This {1} a test", new Object[] {"Yes!!!", "is"}); 

ou

MessageFormat.format("{0} This {1} a test", "Yes!!!", "is"); 

retournera

"Yes!!! This is a test" 

[Malheureusement, je ne peux pas aider à la connexion Struts, bien que this semble pertinente.]

2

Il y a la classe org.apache.struts.util.MessageResources avec diverses méthodes getMessage, certaines d'entre elles t ake arguments à insérer dans le message réel.

Ex .:

messageResources.getMessage("thekey", "Yes!!!"); 
Questions connexes