Я думаю, что было бы лучше разделить страницы на модули GWT. Если вы будете использовать RootPanel.get (), чтобы проверить, существует ли конкретный слот (DIV или другой элемент), ваш модуль будет содержать весь ваш пользовательский интерфейс, поэтому клиент загрузит весь модуль, получая доступ только к одной странице, что, впрочем, не потребует дополнительных затрат.
Вы можете поместить общий код в некоторый модуль, от которого унаследуются все модули ваших страниц.
RootPanel.get () лучше иметь наборы виджетов (логические панели в вашем пользовательском интерфейсе, например, меню, основное содержимое и т. Д.), И вы можете размещать их в соответствующих слотах на странице.
Пример структуры в вашем приложении будет выглядеть (см. Вопрос в комментарии):
- gwtui
-- common (module1)
--- client
---- widgets (eg. common widgets)
---- ...
---- ApplicationService.java
---- ApplicationServiceAsync.java
--- public
---- images (common images etc.)
---- css (common style)
---- ...
--- server
---- ...
---- ApplicationServiceImpl.java
--- GwtCommon.gwt.xml
-- expenses (module2)
--- client
---- ExpensesEntrypoint.java
--- public
--- server
--- GwtExpenses.gwt.xml (inherits GwtCommon, entry point ExpensesEntrypoint)
-- reports (module2)
--- client
---- ReportsEntrypoint.java
--- public
--- server
--- GwtReports.gwt.xml (inherits GwtCommon, entry point ReportsEntrypoint)
Обратите внимание, что вы можете использовать один сервис во всех модулях, также как и в общем модуле, вам может не потребоваться создавать точку входа (но я не уверен на 100%, в каком-то старом проекте мне пришлось создавать пустую точку входа , но не помню точную причину - извините)
Это сработало для нас.
Я, конечно, хотел бы услышать разные мнения.