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);
        }
    });

創建PDF格式    发送文章为PDF   

1 Comment to “gwt使用json替代rpc的简单示例”

  1. By 王军, 2010年01月18日 @ 13:21

    json请求和处理响应的代码没有写完,在最后需要加上:
    try {
    requestBuilder.send();
    } catch (RequestException e) {
    e.printStackTrace();
    }

这篇文章上的评论的 RSS feed TrackBack URI

Leave a Reply