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

StackOverflow https://stackoverflow.com/questions/70785

  •  09-06-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

Моя команда использует 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.

Другие советы

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

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

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

[2]: http://extjs.com/forum/showthread.php?t=30759 форум ext-js

В нашем приложении мы создаем подкласс Экст.данные.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).

Взгляните на Grails, он хорошо сочетается с ExtJS.

Совершенно нормально создавать приложение с использованием Ext JS/DWR/Spring/Hibernate.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top