WEB开发网
开发学院软件开发Java 使用 Grails 构建富 Internet 应用程序,第 2 部分... 阅读

使用 Grails 构建富 Internet 应用程序,第 2 部分: Grails 和 Google Web Toolkit

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 这正是您期望看到的标准 JSON,这是一个对象数组,使用 Grails 构建富 Internet 应用程序,第 2 部分: Grails 和 Google Web Toolkit(4),其中每个 JSON 对象表示一条新闻,比较有趣的是,您需要创建一个用户可以填写的表单,以指定搜索查询和这些查询

这正是您期望看到的标准 JSON。这是一个对象数组,其中每个 JSON 对象表示一条新闻。比较有趣的是,Grails 序列化程序(serializer)添加了一个 class 属性,该属性是您的对象的 Groovy 类。您的应用程序现在还不需要它,因为列表具有相同的作用,但在某些场景中这个元数据是非常有用的。现在已经修改了 Web 服务,可以开始使用 GWT 构建一个新的使用该服务的应用程序。

使用 GWT 编写应用程序

我们将构建一个新的应用程序,以从 Digg clone 应用程序中搜索新闻。就像基于 Flex 的应用程序一样,这个应用程序将是一个能够调用 Grails 服务的客户端应用程序。不过,这一次使用的是 GWT。这允许您用 Java 编写所有应用程序,但 GWT 将其编译成在客户机上运行的非常高效的 JavaScript。现在我们看看用 GWT 编写的应用程序的入口点。

搜索入口点

GWT 应用程序的入口点是一个 Java 类,它的已编译 JavaScript 是针对特定页面的脚本。它负责创建用户界面和处理交互。在本例中,您需要创建一个用户可以填写的表单,以指定搜索查询和这些查询的结果。看看清单 4 中的代码。


清单 4. DiggApp 类
public class DiggApp implements EntryPoint { 
 
  private static final String[][] CATEGORIES = { 
    { "Technology", "technology" }, { "World & Business", "business" }, 
    { "Science", "science" }, { "Gaming", "games" }, 
    { "Lifestyle", "lifestyle" }, { "Entertainment", "entertainment" }, 
    { "Sports", "sports" }, { "Offbeat", "miscellaneous" } }; 
 
  private final HorizontalPanel searchPanel = createSearchForm(); 
  private final VerticalPanel resultsPanel = new VerticalPanel(); 
 
  public void onModuleLoad() { 
    RootPanel.get().add(searchPanel); 
    RootPanel.get().add(resultsPanel); 
  } 
  private HorizontalPanel createSearchForm() { 
    HorizontalPanel panel = new HorizontalPanel(); 
    panel.setTitle("Search for Stories"); 
    Label tagLabel = new Label("Tag:"); 
    final TextBox tagBox = new TextBox(); 
    panel.add(tagLabel); 
    panel.add(tagBox); 
    Label catLabel = new Label("Category:"); 
    final ListBox catBox = new ListBox(); 
    catBox.addItem(""); 
    for (String[] category : CATEGORIES){ 
      catBox.addItem(category[0],category[1]); 
    } 
    panel.add(catLabel); 
    panel.add(catBox); 
    Button searchBtn = new Button("Search"); 
    searchBtn.addClickListener(new ClickListener(){ 
      public void onClick(Widget sender) { 
        search(tagBox.getText(), catBox.getValue(catBox.getSelectedIndex())); 
      } 
    }); 
    panel.add(searchBtn); 
    return panel; 
  } 
} 

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:使用 Grails 构建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接