2009-12-14 5 views
5

Ich bin ziemlich neu bei GWT und werde die Benutzeroberfläche für die Benutzerverwaltung mit GWT entwickeln. Ich plane, das vorhandene Modul zu verwenden, das mit Spring/Hibernate erstellt wurde. Ich habe herausgefunden, wie ich GWT mit Spring integrieren kann, aber ich bin mir nicht sicher, wie ich das Layout gestalten soll.GWT Multi-Module für separate HTML-Seiten?

Ich möchte zwei Seiten:

  1. Benutzerregistrierungsseite (wollen GWT-Widget in HTML einzubetten)
  2. Administrationsseite (separate HTML, wie oben mit GWT-Widget eingebettet)
  3. ich bin der Planung zu Spring Security, soll ich eine einfache JSP Login-Seite verwenden oder kann ich das RIA GWT Login Widget verwenden?

Was kann ich für obige Anforderungen verwenden? mehrere GWT-Module?

Antwort

12

Sie könnten 2 Module erstellen, eines für das Login-Widget und ein weiteres für das Admin-Widget. Jedes Widget fügt sich selbst in ein div-Element auf der gewünschten html-Seite (oder jsp-Seite) ein.

Erstellen Sie zum Beispiel eine * .gwt.xml für jedes Modul, zum Beispiel: login.gwt.xml und admin.gwt.xml. Diese Dateien sollten beide im Stammverzeichnis Ihres gwt-Pakets erstellt werden, zum Beispiel: com.gwt.example.

Als nächstes erstellen Sie eine "Entry Point" -Klasse für jede (jede Klasse implementiert EntryPoint). Zum Beispiel könnte Login.java wie folgt aussehen:

package com.gwt.example.myproject.client; 

public class Login implements EntryPoint { 

    public void onModuleLoad() { 
    ... create loginWidget .. 

    RootPanel.get("my-login-div").add(loginWidget); 

    } 

} 

So, jetzt, wenn Sie ein gwt kompilieren tun, sollte es eine Reihe von Dateien unter war/com.gwt.example erstellen. Die beiden, die Sie interessieren, sind com.gwt.example.login.nocache.js und com.gwt.example.admin.nocache.js.

Nun können Sie diese beiden js-Skripte nach Bedarf in jede HTML- und/oder JSP-Seite einfügen.

das Beispiel zu vervollständigen, wird die folgende html hinzufügen könnte den Login-Widget hinzufügen:

<html> 
....other stuff... 
<script type="text/javascript" language="javascript" src="com.gwt.example.login.nocache.js"></script> 
....other stuff.... 
<div id="my-login-widget"></div> 
....the rest of your html markup.... 
</html> 

Also, wenn Sie auf diese HTML-Seite sehen, es lädt zusammengestellt gwt Javascript, die onModuleLoad zu laden weiß, sucht nach div mit id = "my-login-widget" und fügt das Login-Widget ein.

Ich habe nie Spring Security verwendet, so kann nicht viel Hilfe sein, außer this article sieht aus wie es könnte beschreiben, wie Spring Security über AJAX arbeiten.

+0

danke. das hat viel geholfen! –

1

Sie können zwei Module erstellen oder nur eines verwenden.

Ich habe vor kurzem eine Anwendung erstellt, wo es nur eine Seite gab, und das Login-Panel wurde zuerst angezeigt, wie eine innere Dialogbox. Wenn die Sitzung abgelaufen ist, wurde der Benutzer aufgefordert, seine Anmeldeinformationen erneut einzugeben. Aber ich wollte einen 100-prozentigen No-Page-Refresh-Ansatz. Es ist nett, aber der Nachteil ist, dass der Browser alles im Voraus herunterladen muss. Naja ... zumindest bis GWT 2.0.