ResourceBundle из Java / Struts и заменить выражения - PullRequest
4 голосов
/ 16 сентября 2008

Если у меня есть файл свойств комплекта ресурсов:

A.properties:

thekey={0} This is a test

А потом у меня есть Java-код, который загружает пакет ресурсов:

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

Как заменить текст {0} на какое-то значение

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

Такой, что выход получается как:

Yes!!! This is a test.

Нет никаких методов, которые являются частью Resource Bundle, чтобы сделать это. Кроме того, я в Struts, есть ли способ использовать MessageProperties для выполнения замены.

Ответы [ 2 ]

11 голосов
/ 16 сентября 2008

Класс, который вы ищете, это java.text.MessageFormat; в частности, позвонив

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

или

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

вернется

"Yes!!! This is a test"

[К сожалению, я не могу помочь с подключением Struts, хотя это выглядит актуально.]

2 голосов
/ 16 сентября 2008

Существует класс org.apache.struts.util.MessageResources с различными методами getMessage, некоторые из которых принимают аргументы для вставки в реальное сообщение.

Например: *. * 1005

messageResources.getMessage("thekey", "Yes!!!");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...