Интерфейс сообщений GWT с поддержкой поиска

#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 в качестве возвращаемого типа).