我有一个项目,主要由Java Servlets,JSP / Html页面和一些常规javascript组成。但是,有一些屏幕在javascript中太复杂了,所以我会想要使用GWT。
是否可以这样做,因此同一个项目中有多个EntryPoint
个类?然后,根据正在加载的页面,我将加载相应的javascript文件?
我想也许,RootPanel.get()
函数将用于检查是否存在具有给定ID的某些<div>s
。例如,如果注册div存在,加载注册GWT控件,如果'search'div存在然后加载搜索,但这将使javascript文件非常大。我更愿意将每个组件放在自己的javascript文件中。
这可能吗?
答案 0 :(得分:1)
我认为最好将页面分成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)
请注意,您可以在所有模块中使用一个服务,以及您可能没有创建入口点的通用模块(但我不是100%肯定,在一些旧项目中我必须创建空入口点,但不记得确切的原因 - 抱歉)
这对我们有用。
我当然希望听到不同意见。
答案 1 :(得分:1)
答案 2 :(得分:1)
这是一个关于这个问题的五分钟闪电话: http://www.youtube.com/watch?v=0DuR9xDvrHA&feature=channel_page
可以理解的是,你不能在5分钟内输入大量信息,所以希望这会给你足够的信息,但如果你还有其他问题,请随时提问。
我打算提供更多代码示例,但我还没找到时间。