天天看點

GWT與HTML

GWT 與 HTML , JAVASCRIPT 2008-06-29 18:54

GWT是GOOGLE開發的一個可以将JAVA編譯成JAVASCRIPT的工具,便于AJAX開發。

GWT與HTML

GWT本身提供了一些基本的WIDGET便于界面開發。但是使用WIDGET開發界面會比較耗時。因為現在好像還沒有什麼工具幫助可視化開發。而且讓背景程式設計人員開發界面,似乎也比較頭痛。

GWT還提供了DOM工具,利用美工做好的HTML頁面,背景人員結合GWT來開發。

Element button = DOM.getElementById("button_a");

DOM.sinkEvents(button, Event.ONCLICK);

DOM.setEventListener(button,new EventListener(){

public void onBrowserEvent(Event event) {

    if(DOM.eventGetType(event) == Event.ONCLICK){

        Window.alert("hello world!");

    }

    }

});

通過DOM.getElementById擷取頁面元素,這裡可以是任意HTML元素。

然後通過DOM.sinkEvents讓HTML元素觸發事件。

最後是DOM.setEventListener加入事件監聽器。

GWT與JAVASCRIPT

GWT調用JAVASCRIPT的方法,在GWT的文檔中已經有很詳細的介紹。

但是沒有介紹JAVASCRIPT如何調用GWT的代碼。

GWT編譯器會将函數名轉變成一個随機字串。是以你不能在JAVASCRIPT的代碼中直接引用。但是GWT編譯器也會将所有的引用改名。是以你在JSNI中的引用也會跟着改變。這意味着你可以在JSNI中将GWT函數指派給一個JAVASCRIPT變量,然後通過這個變量調用GWT函數。

GWT代碼:

public static native void setupJavascriptCallback() ;

public static void myGWTMethod() {

Window.alert("hello world!!!!");

}

HTML代碼:

<script>var bbb;</script>

<input type="button" onClick="bbb()"/>

在GWT代碼裡調用setupJavascriptCallback函數後,GWT的myGWTMethod函數就指派給了HTML代碼裡的bbb變量。當button點選時就調用了GWT的函數。這裡要注意,執行bbb函數前,GWT的代碼必須執行完畢。

繼續閱讀