Как лучше всего использовать Ext JS как часть веб-приложения на основе Java / Spring / Hibernate? - PullRequest
2 голосов
/ 16 сентября 2008

Мы хотим попробовать Ext JS в новом проекте. Существует ли какой-либо известный метод интеграции Ext JS с серверным Java-приложением (Spring / Hibernate / JS)? Является ли DWR хорошим выбором для этого?

Ответы [ 5 ]

6 голосов
/ 17 сентября 2008

Моя команда использовала Ext с DWR почти год, и у нее не было ничего, кроме хорошего. Если вы воспользуетесь этим подходом, вы в конечном итоге будете использовать сгенерированные классы JavaScript DWR для отправки запросов на сервер. Это часто делается вместо использования классов Ext.Ajax и Ext.data.Connection. Когда вы используете класс, для которого требуется Ext.data.Store (например, захват, поле со списком и т. Д.), И вы хотите получать данные с сервера, вам потребуется использовать прокси, который может связываться с DWR. Пользовательское сообщество предоставило Ext.ux.data.DWRProxy безупречно для нас: http://extjs.com/forum/showthread.php?t=23884.

1 голос
/ 16 сентября 2008

Да, это возможно.

Я сделал то же самое с .NET: UI в ext-JS, который взаимодействует с сервером через JSON. В мире .NET вы можете использовать DataContractSerializer (класс из WCF) или JavascriptSerializer (ASP.NET)

Я уверен, что в мире Java есть несколько хороших JSON Serializer. Я использовал Jabsorb (но недостаточно, чтобы дать вам твердую обратную связь). Похоже, что другие люди пытались: [текст ссылки] [2]

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

1 голос
/ 16 сентября 2008

В нашем приложении мы подкласс 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 - это имя JavaScript, которое вы указали для любого bean-компонента, представленного в dwr.xml (или в вашей конфигурации Spring).

0 голосов
/ 23 мая 2010

Посмотрите на Grails, он хорошо сочетается с ExtJS.

0 голосов
/ 16 сентября 2008

Это прекрасно для создания вашего приложения, используя Ext JS / DWR / Spring / Hibernate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...