参考地址:http://www.li-zone.cn/index.php/category/%E5%BA%94%E7%94%A8/jee/gwt-ext/
一,什么是GWT的Module
Module是GWT打包资源的方式,一个资源的集合。根据资源的类型,一个modul可以包含定义不同的内容,GWT定义有好几种Module, 其中定义界面的为com.google.gwt.user.User,在其中可以定义连接的CSS,Javascript,GWT UI及Entry Point,这个集合的内容由一个xml文件定义,这个文件通常命名为:“模块名.gwt.xml”。一个Module要使用其它Module必须通过<inherits name=“com.google.gwt.junit.JUnit”/>进行定义。inherits就表示:如果你自己的module inherits了一个module,那么该module中的所有内容及该module inherit的其它内容,包括css,javascript等所有资源都在你自己的module中可见并可直接使用。GWT编译的时候会为每个module生成自己的文件夹,并把该moduel的所有内容及项目的public目录中的内容生成到该文件夹中,文件夹的命名是“包名.module名”
二,什么是GWT的Entry Point
Entry Point可以理解为gwt对界面上不同模块部分的封装,比如一个web界面有两个主要的部分,一个部分是实时显示内容的告示区域,一个部分是留言的区 域,那个就可以定义两个Entry Point,分别处理这两个界面部分,每个Entry Point是一个Java代码,这样不同、功能不一样的界面模块就可以分别写到不同的java代码中去了,当然你也可以把整个页面都定义在一个Entry Point里面去,那这个java代码里既要处理显示实时告示的逻辑,又要处理留言的逻辑,代码就很混杂,这就像现在的用php来整个定义一个页面一 样,Entry Point的定义在Module中通过 <entry-point class=””/>指定。
那么这个Entry Point显示在那个地方呢?
这不是Entry Point处理的内容,Entry Point只表示一个页面会分成几个不同功能的模块及负责这些模块的java类,甚至实际的界面会显示在什么地方由java类里面定义布局的代码定义。这 里每个Module都有一个html页面,该页面负责加载最终gwt编译的javascript代码及ui,那么在这个html里面我们就可以定义一个布 局显示的模板构架。定义好哪里要显示什么,比如:
<table>
<tr><td id=”bbs”></td></tr>
<tr><td id=”message”></td></tr>
</table>
那就可以定义两个Entry Point一个负责BBS,一个负责Message,然后在BBS的java代码里通过
RootPanel.get(”bbs”).add(”负责bbs的布局定义”);
RootPanel.get(”message”).add(”负责Message的布局定义”);
把两个不同的功能代码放到我们预定义的地方,如果RootPanel.get().add(”布局定义”);则加取页面的最后。
EntryPoint的EntryPoint.onModuleLoad()方法就是负责定义界面的地方,相当于RCP IViewPart的createPartControl
三,什么是Remote Module
GWT没有这个概念,这个概念是Cypal插件定义的,它其实就是指GWT访问远程服务的代码,共有三个类:
XXXService:这是远程服务的定义接口,定义暴露的接口方法。该方法的实现在XXXServiceImpl中实现,同时该类需要通过@RemoteServiceRelativePath定义该服务的url路径名,由于XXXServiceImpl其实就是一个Servlet,所以这个路径会在web.xml的url-pattern用到
XXXServiceAsync:该接口是XXXService的副本,它的作用是当Java(最终应该说是javascript)调用XXXService后,该接口提供一个回调,所以该接口的方法定义比XXXXService的方法定义多了个AsyncCallbak<T>接口,该接口定义了两个方法:
onFailure(Throwable caught)//失败时调用
onSuccess(T result)//成功时调用
XXXServiceImpl:这是具体类,这就是具体实现远程接口的地方,可以在这里实现业务逻辑,访问ejb,访问web service等等
除了XXXServiceImpl这几个类外,其它两个接口都不需要我们实现,GWT会通过动态代理来实现这两个接口,所以那两个接口只要定义就可以了
那如何调用Remote Module呢?
调用Remote Module需要使用到XXXServiceAsync副本接口,首先需要通过GWT生成两个接口的动态代理:
XXXServiceAsync service = GWT.create(XXXService.class);
然后就可以调用了,在相关的界面事件处理的地方调用XXXServiceAsync的方法,该方法比XXXService多了一个AsyncCall回调参数,这是我们需要实现的类:
service.服务方法(new AsyncCallback<T>(){ //该类可以定义成匿名类
public void onFailure(Throwable caught){
//处理失败
}
public void onSuccess(T result){
//处理成功
}
})
分享到:
相关推荐
基本概念及GWT结构及命令,开发等的介绍
gwt 练习gwt 练习gwt 练习gwt 练习
GWT学习时的一些小例子,和大家分享,GWT学习时的一些小例子,和大家分享
EXT-GWT2.0.1+API+DOC gwtdesigner Gwt-Ext基础-中级-进阶 GWT快速开发 GWT入门 GWT中文教程
fwefwefwGWT工具GWT工具GWT工具GWT工具GWT工具GWT工具
Ajax 被用于创建更加动态和交互性更好的 Web 应用程序。Google Web Toolkit (简称GWT) 是 Google 推出的 Ajax 应用开发包,GWT 支持开发者使用Java ...本文中作者将介绍如何使用 GWT 开发 Ajax 应用的基本方法和步骤。
Gwt中文手册,GWt入门Gwt中文手册,GWt入门Gwt中文手册,GWt入门
GWT学习经验及实例指导,详细说明了GWT的安装以及使用步骤,结合实例,简单易懂
gwt 入门,是你开始学习gwt的大道 安装之后的目录结构为: C:\程序开发\Java\gwt-windows-1.4.59 doc(文档目录,开发文档和Java API文档) samples(示例代码目录,非常有名的KitchenSink示例代码即在此目录中)...
很好的资源,在这边分享下,提供给想要寻找GWT资源的兄弟姐妹们 如果哪位兄弟有好的资源不要忘了分享啊
GWT(Google Web Toolkit) 是 Google 最近推出的一个开发 Ajax 应用的框架,它支持用 Java 开发和调试 Ajax 应用,本文主要介绍如何利用 GWT 进行 Ajax 的开发。 Ajax技术是当前开发web应用的非常热门的技术,也是Web...
smartgwt最新版本GWT的DEMO 谷歌web工具箱实例
2. Hello GWT 3. 模块 4. JSNI 5. 在GWT中使用XML 6. GWT控件详解 7. 使用GWT控件 8. GWT-RPC 9. Ext GWT 10. (实战)俄罗斯方块游戏 11. (实战)费用申请审批流程 12. GWT与Flex整合 13. 图片缓存 CSS Sprite 14. ...
用Maven创建GWT_SmartGWT项目,从而可利用Maven进行管理,以及持续集成。
gwt-2.1.0
是gwt开发的必要前提,安装及开发的必要准备
GWT的eclipse4.4离线开发插件,国内现在没有
gwt-ext相关jar包及资源
GWT-Ext 控件演示 GWT-Ext 控件演示
gwt学习资料 java gwt相关学习网站 gwt图解 gwt教学 gwt安装部署 步骤流程