gwt使用json替代rpc的简单示例
gwt可以通过rpc方式实现客户端和服务器端的通信,而且实现简单快速。
rpc方式很适合一个人开发整个应用,包括服务器端和客户端部分。
但是如果多人分工开发,有写客户端部分的,有写服务器端部分的,就比较麻烦。主要是实体类(域对象)由谁来写。如果是服务器端人员写,那么一定要放在指定的包下,而且要提供源代码。
这样限制了服务器端开发必须和客户端开发必须是写一个项目。当然也可以分开成不同项目,那样客户端开发人员要写自己的实体类,很麻烦。
如果是多人开发,比较大型的项目,就要考虑使用比如xml或者json格式在服务器和客户端传递数据。
这里写一个简单的json示例。基于gwt的greeting service示例项目。
首先需要加入两个模块:
<inherits name="com.google.gwt.http.HTTP"/>
<inherits name="com.google.gwt.json.JSON" />
然后,比如在war的根目录下创建一个json.html文件,用于模拟生成json数据:
{
"name":"张三"
}
然后,编写调用json请求和处理响应的代码:
private void sendNameToServer() {
sendButton.setEnabled(false);RequestBuilder requestBuilder = new RequestBuilder(
RequestBuilder.GET, "../json.html");
requestBuilder.setCallback(new RequestCallback() {@Override
public void onResponseReceived(Request request,
Response response) {
dialogBox.setText("response:"
+ JSONParser.parse(response
.getText()).isObject().get("name").isString().stringValue());
dialogBox.center();
closeButton.setFocus(true);
}@Override
public void onError(Request request, Throwable exception) {
dialogBox.setText("error! " + exception.getMessage());
dialogBox.center();
closeButton.setFocus(true);
}
});
1 Comment to “gwt使用json替代rpc的简单示例”
这篇文章上的评论的 RSS feed TrackBack URI
By 王军, 2010年01月18日 @ 13:21
json请求和处理响应的代码没有写完,在最后需要加上:
try {
requestBuilder.send();
} catch (RequestException e) {
e.printStackTrace();
}