Я часто использую комбинацию Grails + ExtJS, и ее довольно легко реализовать. Вывод JSON для сеток можно легко выполнить, выполнив что-то подобное в своих контроллерах:
def list = {
def books = Book.list(params)
render( [ items: books, totalCount: Book.count() ] as JSON )
}
это даст "Ext-совместимый" JSON, такой как:
{"items":[{"class":"Book","id":1,"title:"The Definitive Guide to Grails","author":"Graeme Rocher",...
это пример того, как вы должны инициализировать JsonStore:
var store = new Ext.data.JsonStore({
url: '${createLink( action: 'list' )}',
root: 'items',
totalProperty: 'totalCount',
fields: [ 'id','title','author','isdn', 'dateCreated' ],
paramNames: { start : "offset", limit :"max", sort : "sort", dir : "order" }
});
При работе со значениями даты рекомендуется использовать формат даты Javascript для конвертера JSON (т. Е. Значения даты будут отображаться как new Date(123123123)
вместо формата по умолчанию "2009-04-16T00: 00 : 00Z "), поэтому вам не нужно заботиться о формате даты или часовом поясе. Вы можете сделать это, настроив его в вашем grails-app / conf / Config.groovy:
grails.converters.json.date = 'javascript'
Я также реализовал серверную функциональность для плагина фильтра сетки, различные комбинации реализаций комбинированного блока (с удаленным автозаполнением), деревьев, форм и т. Д. Если вы хотите увидеть больше примеров кода для этого, я знаю.
ExtJS 3.0 (в настоящее время RC) еще лучше интегрируется с Grails, поскольку DataStores предоставляет возможность отправлять данные обратно на сервер для сохранения. Подход Ext.Direct также предоставляет новые возможности: -)