2010-02-16 2 views
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.

советы будут с благодарностью, спасибо большое от Стайн :)

ответ

0

я предлагаю что-то вроде этого:

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

Извините, если я здесь немного медленный! Но приводит ли это к двум модулям? – Stine

+2

Нет, для этого вам нужны два файла модулей: http://code.google.com/webtoolkit/doc/latest/DevGuideOrganizingProjects.html#DevGuideModuleXml - см. Раздел «Разделение кода на несколько модулей» –

+0

Да, я знаю, что каждый модуль принимает gwt.xml :) То, что я имел в виду (я думаю), было, если код можно поместить в указанную выше структуру и по-прежнему быть частью одного и того же модуля. Если это подразумевает два модуля, у меня может возникнуть проблема с пониманием того, что происходит со всеми html, css и изображениями, которые у меня есть в моей папке webapps. Черт возьми, я просто хотел бы увидеть подробный пример! > D ну, думаю, я должен начать с того, что посмотрю на раздел, который вы предлагаете, - почему-то я пропустил это! ;) Спасибо .. – Stine

2

Учитывать объявление нескольких исходных элементов в файле yourmodule.gwt.xml. Если исходные элементы не объявлены, то по умолчанию gwt принимает объявление «клиент». Смотрите ниже:

<!--Default if not declared--> 
<source path="client"/> 

Вы можете объявить несколько местоположений источников, как это:

<source path="a_stuff"/> 
<source path="b_stuff"/> 

Теперь все ниже каждого источника будет скомпилирован. «Клиент» - это только значение по умолчанию, а не правило.

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 

Если вы хотите две HTML-страницы - один для каждого модуля (например, I сделал), то вам необходимо создать две страницы:

war 
    page_a.html 
    page_b.html 

и определять точки входа в ваших двух .gwt.xml файлов, например (для a_stu ff.gwt.xml):

<module rename-to='module_a'> 

    ... your stuff here ... 

    <entry-point class="main.java.client.a_stuff.A_entry_point"></entry-point> 
</module> 

Где A_entry_point это класс, который реализует EntryPoint.

Тогда в ваших HTML-страниц, включает только модуль, который вы хотите (например, в page_a.html):

<script type="text/javascript" language="javascript" 
     src="module_a/module_a.nocache.js"></script> 

Кроме того, если вы используете Eclipse, то при нажатии на кнопку «GWT Compile Project ", он попросит вас« Добавить класс точки входа », поэтому вы должны нажать кнопку« Добавить »в разделе« Модули точки входа »в окне« Компиляция GWT »и добавить оба модуля точки входа (a_stuff.gwt.xml и b_stuff.gwt.xml). Вы можете добавлять/удалять модули точек входа отсюда по мере необходимости, выбирать, какие модули компилировать.

Выше работал для меня. Я использовал его для создания двух разных версий моего сайта, каждый в отдельном модуле.

+1

Привет, но что это за файл WAR/WEB-INF/web.xml? Их «» ... почему я должен выбрать страницу по умолчанию? Должен ли этот web.xml иметь сервлет из приложения Admin и User? – nzaero

Смежные вопросы