Pregunta

Si tengo un archivo de propiedades del paquete de recursos:

A.propiedades:

thekey={0} This is a test

Y luego tengo código java que carga el paquete de recursos:

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

¿Cómo puedo reemplazar el texto {0} con algún valor?

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

De modo que el resultado sea:

Yes!!! This is a test.

No hay métodos que formen parte del paquete de recursos para hacer esto.Además, estoy en Struts, ¿hay alguna forma de utilizar MessageProperties para realizar el reemplazo?

¿Fue útil?

Solución

La clase que estás buscando es java.text.MessageFormat;específicamente, llamando

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

o

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

regresará

"Yes!!! This is a test"

[Desafortunadamente, no puedo ayudar con la conexión de Struts, aunque este parece relevante.]

Otros consejos

ahí está la clase org.apache.struts.util.MessageResources con varios métodos getMessage, algunos de ellos toman argumentos para insertarlos en el mensaje real.

P.ej.:

messageResources.getMessage("thekey", "Yes!!!");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top