Загрузка GWT обменивается сообщениями от базы данных

В GWT каждый обычно загружает строки i18n с помощью интерфейса как это:

public interface StatusMessage extends Messages {
   String error(String username);
   :
}

который затем загружает фактические строки из файла StatusMessage.property:

error=User: {0} does not have access to resource

Это - отличное решение, однако мой клиент является непреклонным в своем требовании помещения строк i18n в базе данных, таким образом, они могут быть изменены во времени выполнения (хотя не требование что они быть измененными в реальном времени).

Одно решение состоит в том, чтобы создать асинхронный сервис, который берет идентификатор сообщения и пользовательскую локаль и возвращает строку. Я реализовал это и нахожу это ужасно ужасным (это начинает огромную сумму дополнительной связи с сервером, плюс он делает замену заполнителя свойства скорее сложной).

Таким образом, мой вопрос - это, можете, я некоторым хорошим способом реализую пользовательского поставщика сообщения, который загружает сообщения из бэкенда в одном большом налете (для текущего сеанса пользователя). Если бы это может также сцепиться в механизм сообщений GWT по умолчанию, то я был бы абсолютно счастлив (т.е. таким образом, я могу создать интерфейс как вышеупомянутый и продолжать использовать хорошее {0}, {1}... заменяющий формат свойства).

Другие предложения для чистой базы данных управляемые сообщения в GWT также приветствуются.

6
задан Lars Tackmann 11 April 2010 в 21:44
поделиться

3 ответа

Встроенный в GWT класс Dictionary - лучший способ двигаться вперед. Вот официальная документация о том, как его использовать.

3
ответ дан 17 December 2019 в 04:44
поделиться

Допустим, ваше приложение имеет 500 сообщений на локаль, в среднем 60 символов в сообщении. Я бы не стал дважды думать о загрузке всего этого, когда пользователь входит в систему или выбирает свой язык: это <50 КБ данных и не должно быть проблемой, если вы можете предположить, что широкополосное соединение доступно ... ваше предложение «одним махом». Я уже делаю это в одном приложении GWT, хотя это не сообщения, а свойства, которые читаются из базы данных.

1
ответ дан 17 December 2019 в 04:44
поделиться

Я думаю, что вы можете найти эту статью полезной: http://googlewebtoolkit.blogspot.com/2010/02/putting-test-data-in-its-place.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+blogspot/NWLT+(Google+Web+Toolkit+Blog)&utm_content=Google+Reader

Что можно сделать, так это настроить TextResource, а затем вы можете просто изменить текст во время выполнения. Я не пробовал это, но я очень уверен, что это сработает.

1
ответ дан 17 December 2019 в 04:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: