簡體   English   中英

使用 Ext JS 作為 Java / Spring / Hibernate 應用程序的一部分的最佳方法是什么?

[英]What is the best way to use Ext JS as part of Java / Spring / Hibernate based web application?

我們想在新項目上嘗試 Ext JS。 將 Ext JS 與服務器端 Java (Spring/Hibernate/JS) 應用程序集成是否有任何眾所周知的最佳實踐? DWR 是一個不錯的選擇嗎?

我的團隊幾乎一年都在使用 Ext 和 DWR,除了好話外,沒有什么可說的。 如果您采用這種方法,您最終將使用 DWR 生成的 JavaScript 類向服務器發出請求。 這通常會代替使用 Ext.Ajax 和 Ext.data.Connection 類來完成。 當您使用需要 Ext.data.Store(例如手柄、組合框等)的 class 並且想要從服務器獲取數據時,您需要使用可以與 DWR 鏈接的代理。 用戶社區提供的 Ext.ux.data.DWRProxy 為我們完美地工作: http://extjs.com/forum/showthread.php?t=23884

是的,這是可能的。

我對 .NET 做了同樣的事情:ext-JS 中的 UI 通過 JSON 與服務器通信。 在 .NET 世界中,您可以使用 DataContractSerializer(來自 WCF 的類)或 JavascriptSerializer(ASP.NET)

我確信在 Java 世界中也有幾個不錯的 JSON 串行器。 我使用了 Jabsorb (但不足以給你一個可靠的反饋)。 似乎其他人已經嘗試過:[鏈接文本][2]

[2]: http://extjs.com/forum/showthread.php?t=30759論壇 ext-js

在我們的應用程序中,我們像這樣子類Ext.data.DataProxy

var MyProxy = function(fn) {
  this.fn = fn;
};
Ext.extend( MyProxy, Ext.data.DataProxy, {
  load: function(params,reader,callback,scope,arg) {
    this.fn(params,function(data) {
      callback.call(scope,reader.readRecords(data),arg,true);
    });
  },
  update: function() {}
});

您將它與這樣的商店一起使用:

var store = new Ext.data.Store({
  reader: myReader, proxy: new MyProxy(function(params,callback) {
    // params are used for paging and searching, if you need it
    callback(SomeService.getData(params));
  })
  // ...
});

我們的實際代理 class 有一些額外的調試和錯誤處理代碼,為了簡單起見,我省略了這些代碼。 您可能還需要稍微操作您的數據,以便Ext.data.JsonReader可以處理它,但這是基本思想。 SomeService 是您為在 dwr.xml (或您的 Spring 配置)中公開的任何 bean 指定的 JavaScript 名稱。

看看 Grails,它與 ExtJS 配合得很好。

使用 Ext JS/DWR/Spring/Hibernate 構建您的應用程序非常好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM