【问题标题】:Managing multiple Google Web Toolkit pages in 1 Project在 1 个项目中管理多个 Google Web Toolkit 页面
【发布时间】:2009-04-03 11:27:59
【问题描述】:

我有一个项目,主要由 Java Servlet、JSP/Html 页面和一些常规 javascript 组成。但是,有些屏幕过于复杂,无法仅使用 javascript 完成,因此我想使用 GWT。

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

我在想也许RootPanel.get() 函数将用于检查具有给定ID 的某些<div>s 是否存在。例如,如果 signup div 存在,则加载 sign up GWT 控件,如果 'search' div 存在则加载 Search,但这会使 javascript 文件变得异常大。我宁愿每个组件都在自己的 javascript 文件中。

这可能吗?

【问题讨论】:

    标签: java gwt


    【解决方案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 个 EntryPoint 类,还是可以有多个?如果您可以展示如何拥有 2 个模块的代码示例,那就太棒了..
    • 我编辑了原始帖子以展示我的多个模块的解决方案。如果需要更多解释,请告诉我。再说一遍 - 我并不是说这是最好的方法,只是我还不知道更好的方法。
    【解决方案2】:

    【讨论】:

      【解决方案3】:

      这是我就这个确切主题进行的五分钟闪电演讲: http://www.youtube.com/watch?v=0DuR9xDvrHA&feature=channel_page

      可以理解,您无法在 5 分钟内提供大量信息,因此希望这足以让您继续前进,但如果您还有其他问题,请随时提问。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-06
        • 1970-01-01
        • 2022-10-13
        • 2021-01-17
        • 1970-01-01
        • 2018-12-05
        相关资源
        最近更新 更多