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