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

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

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 当加载页面时将调用 onModuleLoad 方法,在本例中,使用 Grails 构建富 Internet 应用程序,第 2 部分: Grails 和 Google Web Toolkit(5),它将创建一个搜索表单,该表单有一个用于输入标记的文本框,它有一个静态搜索方法,并充当一个数据模型,一

当加载页面时将调用 onModuleLoad 方法。在本例中,它将创建一个搜索表单,该表单有一个用于输入标记的文本框,一个用于选择类别的下拉列表,以及一个用于请求搜索的搜索按钮。它还创建一个空面板,用于显示搜索结果。单击搜索按钮将调用搜索方法。清单 5 给出了搜索方法的代码。


清单 5. DiggApp 搜索方法
private final void search(String tag, String category){ 
  resultsPanel.clear(); 
  Story.search(tag, category, new RequestCallback(){ 
    public void onError(Request request, Throwable exception) { 
      Label label = new Label("Sorry there was an error"); 
      resultsPanel.add(label); 
    } 
    public void onResponseReceived(Request request, Response response) { 
      List<Story> stories = Story.fromJson(response.getText()); 
      SearchTable grid = new SearchTable(stories); 
      resultsPanel.add(grid); 
    } 
  }); 
}   

代码对 Story 类使用了搜索方法。Story 类用作系统中的模型,它非常类似于本系列第 1 部分在 Flex 应用程序中创建的 Story 类。它有一个静态搜索方法,并充当一个数据模型。该类的代码如清单 6 所示。


清单 6. Story 类
public class Story { 
 
  private static final String BASE_URL = "/digg/api/search?"; 
   
  private int id; 
  private String link; 
  private String title; 
  private String description; 
  private String tags; 
  private String category; 
  private int votesFor; 
  private int votesAgainst; 
 
  public Story(JSONObject obj){ 
    id = (int) obj.get("id").isNumber().doubleValue(); 
    link = obj.get("link").isString().stringValue(); 
    title = obj.get("title").isString().stringValue(); 
    description = obj.get("description").isString().stringValue(); 
    tags = obj.get("tags").isString().stringValue(); 
    category = obj.get("category").isString().stringValue(); 
    votesFor = (int) obj.get("votesFor").isNumber().doubleValue(); 
    votesAgainst = (int) obj.get("votesAgainst").isNumber().doubleValue(); 
  } 
   
  public static void search(final String tag, final String category, final 
RequestCallback callback){ 
    String url = buildRequest(tag, category); 
    RequestBuilder builder = 
      new RequestBuilder(RequestBuilder.GET, url); 
    try { 
      builder.sendRequest(null, new RequestCallback(){ 
        public void onError(Request request, Throwable exception) { 
          callback.onError(request, exception); 
        } 
        public void onResponseReceived(Request request, Response response) { 
          callback.onResponseReceived(request, response); 
        }         
      }); 
    } catch (RequestException e) { 
      callback.onError(null, e); 
    } 
  } 
} 

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

Tags:使用 Grails 构建

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