`

GWT的一些基本概念及理解

阅读更多
参考地址: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的基本概念、环境搭建、Hello World程序的创建以及基本组件的使用;中级阶段可能涵盖事件处理、数据绑定、异步通信(RPC)和模块化;进阶内容可能包括自定义组件开发、性能优化以及EXT-GWT的高级...

    gwt 练习 gwt学习

    这个“gwt 练习 gwt学习”项目可能是为了帮助用户熟悉GWT的基本概念、开发流程和最佳实践。 在GWT的实践中,"StockWatcher"是一个经典的入门示例,它通常用来教授GWT的基础知识。StockWatcher应用会模拟一个股票...

    GWT EXT 教程全集

    通过这些资源,开发者不仅可以深入理解GWT和EXT-GWT的基本概念,还能学习到实际开发中的最佳实践,从而提高开发效率和应用质量。对于想要学习或者已经从事GWT和EXT-GWT开发的人来说,这是一个非常宝贵的学习资料集合...

    gwtext学习三部曲

    在这一部分,你将学习到gwtext的基本概念和安装步骤。gwtext是如何与GWT整合,提供增强的组件库和布局管理器的。了解如何在项目中引入gwtext库,并创建第一个gwtext应用。此外,还会讲解gwtext的组件体系,包括按钮...

    GWT快速开发.pdf

    ### GWT基本概念 **GWT**(Google Web Toolkit)是一款由Google开发的开源框架,主要用于帮助开发者使用Java语言快速构建复杂的Web应用程序。其主要优势在于能够将Java代码自动编译为JavaScript,从而在不同的浏览器...

    gwt入门项目代码

    1. **GWT的基础概念**:理解GWT如何将Java代码转换为跨浏览器兼容的JavaScript,以及它的事件模型、模块化系统和编译过程。 2. **GWT的开发环境**:设置和配置Eclipse或IntelliJ IDEA等IDE,安装GWT插件,创建一个...

    GWT打包学习资料

    1. **GWT入门教程**:对于初学者,资料可能涵盖GWT的基本概念、开发环境搭建(如Eclipse插件配置)、Hello World示例、MVP(Model-View-Presenter)设计模式的介绍,以及如何创建和运行第一个GWT项目。 2. **GWT...

    SmartGwt学习文档

    在SmartGwt的学习过程中,首先需要理解GWT的基本概念。GWT是一个开源工具,允许开发者使用Java语言编写前端代码,然后自动编译为高效的JavaScript。GWT提供了编译器、API和开发工具,使得开发者可以在Java环境中进行...

    gwt实例,基于gwt-windows-1.5.2

    GWT 1.5.2发布于2008年,虽然现在已经比较过时,但对于初学者来说,它仍然是一个理解GWT基本概念和工作原理的好起点。 GWT的核心理念是通过Java编写客户端代码,然后自动编译为高效的JavaScript,使得开发者可以...

    gwt学习的书籍分享

    综上所述,"gwt学习的书籍分享"涉及的内容广泛,涵盖了GWT的基本概念、核心技术和实际开发中的各种应用场景。对于想要深入学习GWT的Java开发者来说,这本书提供了宝贵的资源和指导。通过阅读和实践书中的示例,...

    Gwt 项目Demo

    这个“Gwt 项目Demo”是一个简单的示例,旨在帮助初学者理解GWT的基本概念和工作流程。 在GWT项目中,`myGwtProject`可能是整个项目的主要文件夹,包含了项目的源代码、资源配置和构建脚本等。下面将详细介绍GWT...

    gwt 揭秘 源码

    通过对《GWT揭秘》源码的深入学习,开发者不仅能掌握GWT的基本用法,还能理解其内部机制,从而更有效地解决实际开发中的问题,提高开发效率和应用性能。通过阅读part1、part2和part3的内容,相信你可以全面地掌握GWT...

    一个简单的GWT示例

    建议先阅读GWT的官方文档,理解基本概念,然后逐步分析代码,定位问题所在,最后进行修复。 总之,这个GWT股票示例是一个很好的学习资源,它涵盖了GWT的基础特性,同时也提供了实践的机会,帮助开发者加深对GWT框架...

    GWT入门教程

    本教程将带你了解GWT的基本概念和关键特性。 ### 1. GWT的核心概念 **1.1 Java到JavaScript的编译器** GWT的核心是其强大的编译器,它将Java源代码转换为高效的浏览器可执行的JavaScript代码。这使得Java开发者...

    GWT DEMO 增删改查

    GWT(Google Web Toolkit)是一款由Google开发的开源JavaScript开发框架,它允许开发者使用Java语言来编写Web应用程序...通过学习和理解这个DEMO,初学者能够快速掌握GWT中的CRUD操作,并为以后的项目打下坚实的基础。

    GWT入门实例

    1. **GWT简介**:理解GWT的基本概念,包括它的核心理念、工作流程和主要优势。GWT的主要目标是让开发者能够利用熟悉的Java语言进行Web开发,同时避免直接与JavaScript打交道的复杂性。 2. **开发环境搭建**:设置...

    gwt 开发手册轻松入门gwt

    ### 一、GWT的基本概念 1. **Java到JavaScript编译**:GWT的核心功能是将Java源代码编译为JavaScript,这样Java应用就能在浏览器中执行。GWT编译器负责这个转换过程,确保Java代码的大部分特性可以在JavaScript环境...

    gwt揭秘_pdf

    首先,书中会介绍GWT的基本概念,包括GWT的起源、目标以及它如何解决传统Web开发中的一些问题。读者将了解到GWT是如何通过Java到JavaScript的编译过程实现跨平台的,并理解GWT的模块化系统,这对于组织和管理大型...

Global site tag (gtag.js) - Google Analytics