使用GWT为AJAX应用建立UI与在Java Foundation Classes/Swing (JFC/Swing)等UI框架中建立UI相似。在被称为面板的虚拟容器中,你可以通过布置一系列GWT UI部件来安排用户接口。这就像在JPanel 等容器中通过放置UI组件来布置JFC/Swing应用的UI一样。GWT提供一个经常使用部件的库。你可以创建组合多种GWT部件的合成部件,或者创建你自己的部件。
GWT的事件模型延续了JFC/Swing模式。为使用响应事件的部件,你需要实现一个GWT监听接口。然后你调用事件的监听方法,传递部件的类型参数。例如,下面这个例子显示两个按钮,并当用户点击其中一个的时候调用onClick方法。
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.clinet.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.FlowPanel;
public class ListenerExample extends Composite implements ClickListener {
private FlowPanel fp = new FlowPanel();
private Button b1 = new Button("Button 1");
private Button b2 = new Button("Button 2");
public ListenerExample(){
setWidget(fp);
fp.add(b1);
fp.add(b2);
b1.addClickListener(this);
b2.addClickListener(this);
}
public void onClick(Widget sender) {
if (sender == b1) {
//b1 click handler
...
else (sender == b2) {
//b2 click handler
...
}
}
}
使用GWT的正面和反面
正面
需要开发者使用Java语言建立AJAX应用。开发者不需要懂得JavaScript, CSS, 或 DOM。GWT Java-to-JavaScript编译器将客户端Java代码编译为JavaScript代码和HTML。
提供GWT主机模式,这是一个能够执行调试的环境。你可以在主机模式运行你的AJAX应用程序。这允许你使用你的IDE调试设备测试和调试程序。
处理浏览器的不兼容性。GWT Java-to-JavaScript编译器生成适应浏览器的JavaScript代码,节省开发者为浏览器的不兼容性编程。
由Google开发和支持。这意味着Google提供了有关使用GWT的良好文档和社区资源。
反面
生成的JavaScript代码有缺陷。虽然使用GWT不需要懂得JavaScript,你有时可能需要检查生成的JavaScript代码-例如,如果浏览器显示了一个JavaScript错误。对于不熟悉JavaScript的开发者,理解GWT生成的JavaScript代码可能有困难。也因为GWT生成JavaScript代码,你失去了对处理的精密控制。
- AJAX Developer Resource Center
- AJAX FAQ for the Java Developer
- Hands-On Java EE 5
- Creating an AJAX-Enabled Bookstore Application, a Do-It-Yourself Approach
- Asynchronous JavaScript Technology and XML (AJAX) With Java 2 Platform, Enterprise Edition
- Java BluePrints Solutions Catalog
- Java BluePrints AJAX Components
- AJAX Components in the Java Studio Creator IDE
- Programming Model for AJAX
- Including AJAX Functionality in a Custom JavaServer Faces Component
- JSF Extensions
- Project jMaki
- Direct Web Remoting
- Java Pet Store Demo 2.0
- Java EE Technologies
- Java EE SDK
- New Technologies for Ajax and Web Application Development: Project jMaki, Project Dynamic Faces, and Project Phobos
关于作者
Ed Ort是java.sun.com的专职成员。他写作范围广阔,涉及关系型数据库,编程语言,和web服务。
Mark Basler 是一位高级软件工程师,Java蓝图团队成员,协助创建Java Blueprints Solution Catalog 和Java Pet Store Demo 2.0,另外还有一些展示如何设计和开发AJAX WEB 2.0的相关应用程序。它的其他贡献包括设计和开发SUN下载中心的关键组件,电子商务套件,和Sun Java系统应用服务器。