GWT-基本概念及理解

一.什麼是GWT的Module
Module是GWT打包資源的方式,一個資源的集合。根據資源的類型,一個modul可以包含定義不同的內容,GWT定義有好幾種Module, 其中定義界面的爲com.google.gwt.user.User,在其中可以定義連接的CSS,Javascript,GWT UI及Entry Point,這個集合的內容由一個xml文件定義,這個文件通常命名爲:“模塊名.gwt.xml”。一個Module要使用其它Module必須通過 進行定義。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裏面我們就可以定義一個佈局顯示的模板構架。定義好哪裏要顯示什麼,比如:
那就可以定義兩個Entry Point一個負責BBS,一個負責Message,然後在BBS的java代碼裏通過
把兩個不同的功能代碼放到我們預定義的地方,如果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回調參數,這是我們需要實現的類:

 

原文:http://www.li-zone.cn/index.php/2009/05/gwt%e7%9a%84%e4%b8%80%e4%ba%9b%e5%9f%ba%e6%9c%ac%e6%a6%82%e5%bf%b5%e5%8f%8a%e7%90%86%e8%a7%a3/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章