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的代碼必須執行完畢。 |