我有一个项目,主要由 Java Servlet、JSP/Html 页面和一些常规 javascript 组成。然而,有些屏幕太复杂,无法仅用 javascript 来完成,因此我想使用 GWT。
这样可以吗,所以有多个EntryPoint
同一项目中的类(class)?然后,根据正在加载的页面,我将加载适当的 javascript 文件?
我在想也许,RootPanel.get()
函数将用于检查是否确定 <div>s
具有给定 ID 的存在。例如,如果注册 div 存在,则加载注册 GWT 控件,如果“搜索”div 存在,则加载搜索,但这将使 javascript 文件变得非常大。我宁愿每个组件都在自己的 javascript 文件中。
这可能吗?
最佳答案
我认为最好将页面分成 GWT 模块。如果您将使用 RootPanel.get() 来检查特定槽(DIV 或其他元素)是否存在,您的模块将保存所有 UI,因此客户端将加载整个模块,仅访问一个页面 - 这很可能是不必要的开销。 您可以将通用代码放置在所有页面模块都将从继承的某个模块中。
RootPanel.get() 更适合您拥有一组小部件(UI 中的逻辑面板,例如菜单、主要内容等),并且您可以将它们放置在页面上适当的插槽中。
您的应用程序中的示例结构如下所示(请参阅评论中的问题):
- 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)
请注意,您可以在所有模块中使用一项服务,以及在公共(public)模块中您可能不必创建入口点(但我不是 100% 确定,在一些旧项目中我必须创建空入口点,但不记得确切原因 - 抱歉)
这对我们有用。
我当然想听听不同的意见。
关于java - 管理 1 个项目中的多个 Google Web Toolkit 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/713555/