Как поделиться объектами домена на Grails с Ext GWT (GXT)? - PullRequest
3 голосов
/ 27 октября 2008

Мое приложение логически разделено на сервер, который содержит мои доменные объекты и контроллеры Grails; и клиент, где у меня есть мои классы Ext GWT, которые создают все страницы пользовательского интерфейса.

Для запросов пользовательского интерфейса я использую AJAX-вызов метода контроллера, который возвращает, например, список объектов домена в виде структуры JSON.

Следуя принципу СУХОЙ, я не хотел бы "сериализовать" данные домена в строку JSON на сервере, а затем десериализовать их на клиенте в другую структуру - я хотел бы воспользоваться преимуществом объекта Domain У меня уже есть, мне не нужно менять несколько мест, когда я добавляю, меняю или удаляю новое поле.

Вопрос: это хороший путь?

Если да, как лучше всего сделать доменные объекты .groovy доступными на клиентских Java-классах Ext GWT на стороне клиента?

Если нет, то почему это плохо и что бы вы посоветовали вместо этого?

Ответы [ 2 ]

1 голос
/ 29 октября 2008

Нет хорошего способа - вам нужен Java-объект, который GWT сериализуем. Единственное реальное решение, которое я вижу, это написать плагин (или добавить к плагину GWT) способ автоматической генерации объекта передачи данных, возможно, с использованием аннотаций в объекте домена grails.

Аналогичный метод используется для автоматической генерации интерфейсов RPCAsync в плагине gwt - см. GwtGrailsPlugin.groovy в каталоге плагинов gwt, строка 133 или около того - начало.

Вы можете подключиться к этому (или просто изменить этот файл напрямую, возможно, проще) и вставить некоторый код для генерации файлов передачи данных. Дополнительным преимуществом может быть то, что вы можете детализировать объект передачи данных, чтобы личные данные (например, пароли!) Не передавались.

0 голосов
/ 02 декабря 2009

Кроме того, вы можете отправить свои данные клиентской стороне в виде json или xml. Вы можете создать REST API для вашего сервера.

...