#gwt #binding #messages #deferred
#gwt #привязка #Сообщение #отложенный
Вопрос:
Я работаю над новым приложением, и мне нужно создать интерфейс сообщений с поиском, используя ключ для поиска значения (например, ConstantsWithLookup, но способный принимать параметры). Я изучаю функциональность класса Dictionary, но в нем отсутствует настройка сообщений с помощью параметров.
С помощью ConstantsWithLookup я могу сделать следующее:
myConstantsWithLookupInterface.getString("key");
и получаем что-то вроде:
Field must be filled with numbers
Но мне нужно это сделать:
myMessagesWithLookupInterface.getString("key", "param1", "param2",...);
и получаем что-то вроде:
Field _param1_ must be filled with numbers greater than _param2_
Я понятия не имею, как это сделать.
Ответ №1:
Используйте регулярные выражения GWT:
//fields in your class
RegEx pattern1 = RegEx.compile("_param1_");
RegEx pattern2 = RegEx.compile("_param2_");
public String getString(String key, String replace1, String replace2){
// your original getString() method
String content = getString(key);
content = pattern1.replace(content,replace1);
content = pattern2.replace(content,replace2);
return content;
}
Если ваши данные содержат, Field _param1_ must be filled with numbers greater than _param2_
то это будет заменено _param1_
содержимым строки replace1
.
Комментарии:
1. Это требует использования ConstantsWithLookup, в то время как мне действительно нужны дополнительные возможности сообщений (поддержка @PluralCount и SafeHtml в качестве возвращаемого типа).