GWT - 多个模块?

Sti*_*ine 9 gwt

我正在努力使我的GWT应用程序的结构正确.(我是唯一一个发现GWT代码很容易变得非常混乱和难以理解的人吗?)

该应用程序应该是几个截然不同的区域的接口 - 让我们说区域A和B.目前我正在尝试将它作为一个带有两个标签的界面实现 - 一个带你到A区,一个带你去区域B.我不知道如何通过这种方式将两个不同区域所需的代码分离得很好 - 应用MVP模式(我实际上并不清楚如何做到这一点我的选项卡之类的分层接口)我最终将区域A和区域B代码放在例如client.view和client.presenter包中:

src
 - main
     - java
         - client
             + event
             - presenter
                 + a_stuff
                 + b_stuff
             - view
                 + a_stuff
                 + b_stuff
 :

我还没有找到任何关于如何以及何时使用多个模块的好例子,我想知道我的案例是否可能是多个模块有意义的案例?在这种情况下,代码将如何构建?

也许有必要提一下,我正在使用最新的GWT,Maven和IntelliJ IDEA.

非常感谢提示,非常感谢Stine :)

Ada*_*lis 10

这是一个更全面的示例,帮助我获得两个模块:http: //ashtoncthomas.blogspot.com/2011/02/multiple-modules-in-google-web-toolkit.html

它使用的结构:

src
 - main
     - java
         a_stuff.gwt.xml
         b_stuff.gwt.xml
         - client
              - shared_stuff
              - a_stuff
                   - presenter
                   - view
              - b_stuff
                   - presenter
                   - view
Run Code Online (Sandbox Code Playgroud)

如果你想要两个HTML页面 - 每个模块一个(就像我一样),那么你需要创建两个页面:

war
  page_a.html
  page_b.html
Run Code Online (Sandbox Code Playgroud)

并在两个.gwt.xml文件中定义您的入口点,例如(对于a_stuff.gwt.xml):

<module rename-to='module_a'>

    ... your stuff here ...

    <entry-point class="main.java.client.a_stuff.A_entry_point"></entry-point>
</module>
Run Code Online (Sandbox Code Playgroud)

其中A_entry_point是一个实现的类EntryPoint.

然后,在HTML页面中,仅包含所需的模块(例如,在page_a.html中):

<script type="text/javascript" language="javascript" 
        src="module_a/module_a.nocache.js"></script>
Run Code Online (Sandbox Code Playgroud)

此外,如果您正在使用Eclipse,那么当您单击"GWT Compile Project"时,它将要求您"添加入口点类",因此您必须单击"入口点模块"中的"添加"按钮GWT Compile窗口的一部分,并添加两个入口点模块(a_stuff.gwt.xmlb_stuff.gwt.xml).您可以根据需要从此处添加/删除入口点模块,以选择要编译的模块.

以上对我有用.我用它来制作我网站的两个不同版本,每个版本都在一个单独的模块中.


Ait*_*ito 0

我建议这样的事情:

src
 - main
     - java
         + a_stuff
           -client
             - presenter
             - view
             - event
         + b_stuff
           -client
             - presenter
             - view
             - event
Run Code Online (Sandbox Code Playgroud)

  • 不,为此您需要两个模块文件:http://code.google.com/webtoolkit/doc/latest/DevGuideOrganizingProjects.html#DevGuideModuleXml - 请参阅“将代码划分为多个模块”部分 (2认同)