Мой вопрос: что является лучшим способом отправить данные Java EE с аннотированными объектами данных в клиентов, чтобы использовать их в сетке, например? Разумеется, я мог бы вручную создавать модели клиентских моделей BaseModel для каждого объекта, но мне интересно, что может быть лучше всего здесь. Мне нужно пошаговое руководство, если это возможно.EXT GWT + java EE
ответ
Я использую ext-gwt (gxt) около года и чувствую вашу боль!
Из того, что я узнал до сих пор, кажется, что существует 3 стратегии перенося бобы туда и обратно между клиентом и сервером:
Вот краткий обзор каждой стратегии:
- Создать client pojo/bean, который расширяет BaseModel для каждого компонента компонента bean/pojo/entity на стороне сервера.
- Доля POJO/Бина между клиентом и сервером
- Преобразовать стороне сервера POJO/бобы в JSON перед отправкой клиенту и затем использовать JavaScript (JSON) объекты на стороне клиента.
Конечно, есть компромиссы для каждого.
Стратегия № 1 прекрасно интегрируется в gxt. Вы можете использовать встроенные магазины и привязки gxt. Это стратегия, которую я использовал в производственном приложении, и она сработала, но я нашел утомительным дублирование beans на клиенте и сервере. Лично я также обнаружил, что механизм хранения/привязки extjs (и gxt) может быть чрезмерно сложным и сложным для случаев с короткими.
Стратегия № 2: Это стратегия, которую я, скорее всего, буду использовать в своем следующем проекте gxt. Недостатком является то, что вы должны сделать свою собственную форму и привязку сетки в gxt на клиенте. Но это то, что вы можете поделиться всеми своими бобами/pojos. Ниже приведен краткий обзор деталей реализации:
В дереве src на стороне сервера добавьте файл .gwt.xml в корневой пакет, содержащий классы сервера pojo/bean. Например: Я создал этот файл с именем «GWT-models.gwt.xml» под com.daveparoulek.gwt.server.models
<module rename-to='gwt-models'>
<inherits name='com.google.gwt.user.User' />
<source path="client" />
</module>
В приведенном выше примере, бобы на самом деле находится внутри com.daveparoulek.gwt .server.models.client.
После того, как вы установили эту настройку, вы можете настроить проект gwt клиента, чтобы включить код src внутри com.daveparoulek.gwt.server.models, добавив тег «inherit» в gwt.xml-файл проекта gwt клиента, например :
<inherits name="com.daveparoulek.gwt.server.models" />
Стратегия № 3: После просмотра нескольких переговоров с Google на GWT, это, кажется, их предпочтительный способ иметь дело с объектами на стороне клиента. Хотя это приводит к созданию типа наложения json для каждой стороны сервера pojo/bean. Это также отлично не вписывается в мир gxt. Click here за очень хорошее введение в эту концепцию.
Спасибо за ваш вклад и извините за поздний ответ! Я собираюсь выкопать себя в стратегию №3 и проверить галаад, а затем решить, какой из них будет лучшим для меня. – Pecc
Привет! Я решил попробовать стратегию №1 вручную. Однако у меня есть некоторые вопросы по этому поводу: – Pecc
- Поскольку gwt не может передавать сущности-объекты через rpc, а BeanModelFactory не может использоваться в gwt на стороне сервера, кажется, мне нужно сначала создать класс DTO для каждого объекта, а затем отправить этот DTO через rpc, а затем преобразовать его в BeanModel на стороне клиента. Я прав? – Pecc
Я не специалист, но кажется, что люди используют Gilead (у которого есть учебник) + GWT + GXT, чтобы облегчить процесс.
BeanModelFactory - это огромная трата вашего времени. Согласно Sencha help docs, вы можете просто вызвать getFactory по тому, что возвращает BeanModelFactory из вызова статического метода get()
. Следуя их примеру, это возвращаемое значение оказывается экземпляром самого класса BeanModelFactory, который имеет нереализованный (абстрактный) метод getFactory()
.
Итак, вы получаете хороший нулевой указатель из ниоткуда. Спасибо за ничего.
Я придерживался стратегии № 1.
- 1. Java EE, GWT, NoClassDefException
- 2. Ext GWT vs GWT-EXT
- 3. Gwt-Ext сетка внутри Gwt-Ext ColumnTree
- 4. Разница между gwt-ext и ext-gwt
- 5. Смешивание GWT и Ext GWT
- 6. Проверка подлинности Java EE и GWT
- 7. GWT web.xml - java ee - логин и сеанс
- 8. Интеграция GWT в существующем приложении Java EE
- 9. Ext Gwt checkbox прослушиватель
- 10. Gwt-ext window positioning
- 11. ext gwt grid event
- 12. Ext JS/GWT Combobox
- 13. GWT-Ext DatePicker.setDisabledDatesRE
- 14. Ext-GWT Advanced Form
- 15. gwt-ext file upload
- 16. Разница между gwt, gwt-rpc, ext-gwt, smart gwt
- 17. Пейджинг GWT-EXT datagrid с GWT-RPC?
- 18. Платформа GWT, GWT-Ext и SmartGWT
- 19. Настройка темы в Ext GWT
- 20. Отключить Ext Gwt "formdata" border
- 21. Панель вкладок в gwt-ext
- 22. GWT-Ext EditorGridPanel проблема рендеринга
- 23. ext gwt remove (Widget) issue
- 24. GWT-EXT дерево XML Error
- 25. Ext-GWT TreeGrid косвенно вызывает обратный вызов GWT-RPC? Зачем?
- 26. ExtJs Vs Ext GWT Vs SmartGWT
- 27. Java EE 6 Framework
- 28. GWT + EJB 3.0 + Eclipse + Java EE + Weblogic 10g
- 29. Java EE6 и GWT
- 30. Информация о ленивой загрузке в GWT и GWT-Ext
Я как-то отказался от Ext GWT по этой точной причине. – Bozho