Frage

Wenn ich eine Ressourcenbündel Eigenschaftendatei:

A.properties:

thekey={0} This is a test

Und dann habe ich Java-Code, den das Ressourcenbündel geladen:

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

Wie kann ich ersetzen Sie die {0} Text mit einem Wert

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

so dass die Ausgabe kommt als:

Yes!!! This is a test.

Es gibt keine Methoden, den Teil des Ressourcenbündels ist, dies zu tun. Außerdem bin ich in Struts, ist es eine Möglichkeit, MessageProperties zu verwenden, um den Austausch zu tun.

War es hilfreich?

Lösung

Die Klasse Sie suchen ist java.text.MessageFormat; Insbesondere Aufruf

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

oder

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

wird wieder

"Yes!!! This is a test"

[Leider kann ich nicht mit der Struts-Verbindung helfen, obwohl diesem sieht relevant.]

Andere Tipps

Es ist die Klasse org.apache .struts.util.MessageResources mit verschiedenen Methoden getMessage, Argumente einige von ihnen ergreifen, um die eigentlichen Nachricht einzufügen.

Zum Beispiel:.

messageResources.getMessage("thekey", "Yes!!!");
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top