3

我们想在新项目上尝试 Ext JS。将 Ext JS 与服务器端 Java (Spring/Hibernate/JS) 应用程序集成是否有任何众所周知的最佳实践?DWR 是一个不错的选择吗?

4

5 回答 5

7

我的团队几乎一年都在使用 Ext 和 DWR,除了好话外,没有什么可说的。如果您采用这种方法,您最终将使用 DWR 生成的 JavaScript 类向服务器发出请求。这通常会代替使用 Ext.Ajax 和 Ext.data.Connection 类来完成。当您使用需要 Ext.data.Store 的类(例如,手柄、组合框等)并且想要从服务器获取数据时,您将需要使用可以与 DWR 链接的代理。用户社区提供的 Ext.ux.data.DWRProxy 为我们完美地工作:http ://extjs.com/forum/showthread.php?t=23884 。

于 2008-09-17T16:18:54.903 回答
1

是的,这是可能的。

我对 .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

于 2008-09-16T10:25:20.580 回答
1

在我们的应用程序中,我们像这样子类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));
  })
  // ...
});

我们实际的代理类有一些额外的调试和错误处理代码,为了简单起见,我省略了这些代码。您可能还需要稍微操作您的数据,以便Ext.data.JsonReader可以处理它,但这是基本思想。SomeService 是您为在 dwr.xml(或您的 Spring 配置)中公开的任何 bean 指定的 JavaScript 名称。

于 2008-09-16T17:48:36.270 回答
0

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

于 2010-05-23T16:22:32.900 回答
-1

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

于 2008-09-16T10:09:54.157 回答