Pergunta

Se eu tiver um arquivo de propriedades do pacote de recursos:

A. propriedades:

thekey={0} This is a test

E então eu tenho o código Java que carrega o pacote de recursos:

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

Como posso substituir o texto {0} por algum valor

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

De modo que a saída saia como:

Yes!!! This is a test.

Não há métodos que façam parte do Resource Bundle para fazer isso.Além disso, estou no Struts, existe alguma maneira de usar MessageProperties para fazer a substituição.

Foi útil?

Solução

A classe que você está procurando é java.text.MessageFormat;especificamente, ligando

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

ou

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

retornará

"Yes!!! This is a test"

[Infelizmente, não posso ajudar com a conexão do Struts, embora esse parece relevante.]

Outras dicas

Existe a aula org.apache.struts.util.MessageResources com vários métodos getMessage, alguns deles usam argumentos para inserir na mensagem real.

Por exemplo.:

messageResources.getMessage("thekey", "Yes!!!");
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top