使用 Grails 构建富 Internet 应用程序,第 2 部分: Grails 和 Google Web Toolkit
2009-11-19 00:00:00 来源:WEB开发网注意,这个清单仅是该类的一部分;省略了一些 helper、getter 和 setter 函数。搜索方法接受参数 tag 和 category,以及一个 RequestCallback。它然后使用 GWT RequestBuilder 类创建一个 HTTP 请求并发送到 Web 服务。RequestCallback 是 GWT 中的一个接口,用于发送异步 HTTP 请求。Story.search 方法委托传入到其内部的 RequestCallback。因此,在这里它将执行在 清单 5 中创建的 RequestCallback。注意,不管是清单 5 还是 清单 6,我们都创建了一个用于实现 RequestCallback 接口的匿名内部类。这是 GWT(和一般的 Java UI 编程)中常用的技巧,因为它使您可以访问包含的类中的字段和方法。我们再回过头看看 清单 5,可以看到使用 Story.fromJson 方法获取响应文本,然后将其解析成 Story 对象的列表。如清单 7 所示。
清单 7. Story.fromJson 方法public static List<Story> fromJson(String jsonText){
JSONValue val = JSONParser.parse(jsonText);
JSONArray array = val.isArray();
List<Story> stories = new ArrayList<Story>(array.size());
for (int i=0;i<array.size();i++){
Story story = new Story(array.get(i).isObject());
stories.add(story);
}
return stories;
}
这个方法使用了 GWT 的 JSONParser 类。它创建一个 JSON 对象数组,并将每个对象传递到 Story 类的构造器中(如 清单 6 所示)。回过头来看看 清单 5,可以看到,获得新闻对象列表之后,您就会使用它创建一个 SearchTable 对象。这是一个定制的小部件,如清单 8 所示。
更多精彩
赞助商链接