用于单独HTML页面的GWT多模块?

时间:2009-12-14 02:06:57

标签: java gwt spring-mvc

我对GWT很新,并且正在使用GWT为用户管理应用程序开发UI。 我打算使用使用Spring / Hibernate创建的现有模块。我想出了如何将GWT与Spring集成,但我不确定如何设计布局。

我想要两页:

  1. 用户注册页面(希望以HTML格式嵌入GWT小部件)
  2. 管理页面(如上所述单独的HTML,嵌入了GWT小部件)
  3. 我计划使用Spring Security,我应该使用简单的JSP登录页面还是可以使用RIA GWT登录小部件?
  4. 我可以将哪些用于上述要求?多个GWT模块?

2 个答案:

答案 0 :(得分:12)

您可以创建2个模块,一个用于登录窗口小部件,另一个用于管理窗口小部件。每个小部件都会将自己插入到您想要的任何html(或jsp)页面的div中。

例如,为每个模块创建一个* .gwt.xml,例如:login.gwt.xml和admin.gwt.xml。这些文件都应该在gwt包的根目录下创建,例如:com.gwt.example

接下来,为每个类创建一个“入口点”类(每个类将实现EntryPoint)。例如,Login.java可能如下所示:

package com.gwt.example.myproject.client;

public class Login implements EntryPoint {

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

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

  }

}

所以,现在,当你进行gwt编译时,它应该在war/com.gwt.example下创建一堆文件。您感兴趣的两个是com.gwt.example.login.nocache.jscom.gwt.example.admin.nocache.js

现在,您可以根据需要将这两个js脚本添加到任何html和/或jsp页面中。

要完成该示例,您可以添加以下html来添加登录小部件:

<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>

因此,当你浏览到这个html页面时,它会加载已编译的gwt javascript,它知道加载onModuleLoad,它会查找id为“my-login-widget”的div并插入登录小部件。

我从来没有使用过Spring Security,所以除了this article看起来它可能会描述如何让Spring Security在ajax上工作之外,没有多大帮助。

答案 1 :(得分:1)

您可以创建两个模块或仅使用一个模块。

我最近创建了一个只有一个页面的应用程序,首先显示了登录面板,就像一个内部对话框。会话过期后,系统会提示用户再次输入其凭据。但我打算采用100%无页面刷新的方法。这很好,但缺点是浏览器必须预先下载所有内容。好吧......至少在GWT 2.0之前。