Question

Si j'ai un fichier de propriétés de regroupement de ressources:

A.properties:

thekey={0} This is a test

Et puis j'ai le code Java qui charge le bundle de ressources:

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

Comment remplacer le texte {0} par une valeur

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

Tels que la sortie apparaît sous la forme:

Yes!!! This is a test.

Aucune méthode faisant partie du regroupement de ressources ne permet cela. De plus, je suis dans Struts, existe-t-il un moyen d'utiliser MessageProperties pour effectuer le remplacement?

Était-ce utile?

La solution

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

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

ou

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

reviendra

"Yes!!! This is a test"

[Malheureusement, je ne peux pas vous aider avec la connexion Struts, bien que cette semble pertinent.]

Autres conseils

Il existe la classe org.apache .struts.util.MessageResources avec diverses méthodes getMessage, certaines d’entre elles prennent des arguments à insérer dans le message réel.

Par exemple:

messageResources.getMessage("thekey", "Yes!!!");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top