天天看点

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的代码必须执行完毕。

继续阅读