gwt总结

1、常见错误:
1.1、$wnd.isc  no define 或 为空:
解决:是eclipse的环境没有配置好。检查jar文件是否从其它工程copy,改成eclipse自动生成的gwt  jar包;smartgwt的jar一定是从smart网站自已下载的。

2、在gwt google 编译环境下,获取数据库连接进行数据库操作会报错;也就是说google编译环境下,只能进行客户端的编译。

GWT的最重要的功能应属他的RPC调用机制,是Ajax技术的扩展,它包括三个部分:远程接口,服务器实现,异步接口文件。

1.远程接口需要继承RemoteService接口,然后在这个接口上添加Java注记 (@RemoteServiceRelativePath(“url”)),这个注记的参数指明实现这个接口的Servlet的URL路径,在浏览器 端,GWT使用延迟绑定创建这个接口的实现类。

2.GWT-RPC是基于Servlet实现的,在服务器端我们要实现RPC的接口类,并派生于 com.google.gwt.user.server.rpc.RemoteServiceServlet类,这个类由GWT提供,派生于 HttpServlet类。当浏览器端请求这个Servlet时,它会反射自身,查找实现了客户请求的函数,将浏览器端的请求反序列化并调用找到的函数。 函数执行完成后,它将返回值序列化后传递给浏览器端。服务端的实现就是这样的Servlet具体实现远程接口的方法。

3.我们需要通过异步的方式调用浏览器端的远程接口,于是就需要定义一个远程接口的异步版本,远程接口和异步版本放在同一个包中。并且接口名必须为 [接口名]Async。RPC接口中每一个函数都需要定义一个相对应的异步函数,异步函数的返回值为null,同时在增加一个额外的 AsyncCallback>参数,AsyncCallback>是泛型类,泛型参数为RPC函数的返回值类型。

举个例子具体说明三个部分是如何整合的

EmployeeService(远程接口)

@RemoteServiceRelativePath("employeeService")

public interface EmployeeService extends RemoteService{

public Boolean checkSex(String sex);

}

/****************

EmployeeServiceAsync(异步接口文件)

public interface EmployeeServiceAnsyc {

public void checkSex(String sex,AsyncCallBack callback);

}

/****************

EmployeeServiceImpl(服务器实现)

public class EmployeeServiceImpl extends RemoteServiceServlet implements EmployeeService{

public Boolean checkSex(String sex){

if("man".equals(sex)){return true;}

else{return false;}

}

}

在web.xml中对Servlet 添加

emploeeService

com.gwt.server.service.EmployeeServiceImpl

.........

在浏览器端调用的时候,代码如下:

//获取EmployeeServiceAsync对象

EmployeeServiceAsync employeeService = (EmployeeServiceAsync)GWT.create(EmployeeService.class);

//设定ServiceEntryPoint的URL

ServiceDefTarget target = (ServiceDefTarget)employeeService;

target.setServiceEntryPoint(GWT.getModuleBaseURL()+"employeeService.gwt");

employeeService.checkSex("man",new AsyncCallback(){

@Override

public void onFailure(Throwable caught){

//失败

Window.alert("Failed to get response from server :/n"+caught.getMessage());

}

@Override

public void onSuccess(Boolean result){

if(result){

Window.alert("check Sex success ;it is man ! ");

}else{Window.alert("check Sex success ;it is woman ! ");}

}

});

 

其它内容:

GWT基本控件 http://examples.roughian.com/index.htm#Home

 

GWT官方文档 http://code.google.com/intl/zh-CN/webtoolkit/

 

其它GWT开发相关文章

http://www.**.com/topic/128194


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/118838/viewspace-735108/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/118838/viewspace-735108/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值