在1个项目中管理多个Google Web Toolkit页面

时间:2009-04-03 11:28:00

标签: java gwt

我有一个项目,主要由Java Servlets,JSP / Html页面和一些常规javascript组成。但是,有一些屏幕在javascript中太复杂了,所以我会想要使用GWT。

是否可以这样做,因此同一个项目中有多个EntryPoint个类?然后,根据正在加载的页面,我将加载相应的javascript文件?

我想也许,RootPanel.get()函数将用于检查是否存在具有给定ID的某些<div>s。例如,如果注册div存在,加载注册GWT控件,如果'search'div存在然后加载搜索,但这将使javascript文件非常大。我更愿意将每个组件放在自己的javascript文件中。

这可能吗?

3 个答案:

答案 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分钟内输入大量信息,所以希望这会给你足够的信息,但如果你还有其他问题,请随时提问。

我打算提供更多代码示例,但我还没找到时间。