Domanda

Se dispongo di un file delle proprietà del pacchetto di risorse:

A.proprietà:

thekey={0} This is a test

E poi ho il codice Java che carica il pacchetto di risorse:

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

Come posso sostituire il testo {0} con un valore

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

In modo tale che l'output risulti come:

Yes!!! This is a test.

Non esistono metodi che facciano parte di Resource Bundle per eseguire questa operazione.Inoltre, sono in Struts, esiste un modo per utilizzare MessageProperties per eseguire la sostituzione.

È stato utile?

Soluzione

La classe che stai cercando è java.text.MessageFormat;in particolare, chiamando

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

O

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

sarà di ritorno

"Yes!!! This is a test"

[Purtroppo però non posso aiutarti con la connessione Struts Questo sembra rilevante.]

Altri suggerimenti

C'è la classe org.apache.struts.util.MessageResources con vari metodi getMessage, alcuni accettano argomenti da inserire nel messaggio vero e proprio.

Per esempio.:

messageResources.getMessage("thekey", "Yes!!!");
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top