Bardzo często używam kombinacji Grails + ExtJS i jest ona łatwa do wdrożenia. Wyjście JSON dla siatki można łatwo osiągnąć robiąc coś takiego w swoich kontrolerów:
def list = {
def books = Book.list(params)
render([ items: books, totalCount: Book.count() ] as JSON)
}
będzie produkować „Ext zgodny” JSON jak:
{"items":[{"class":"Book","id":1,"title:"The Definitive Guide to Grails","author":"Graeme Rocher",...
jest to przykład, w jaki sposób powinna zainicjować 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" }
});
Gdy mamy do czynienia z datą wartości, to IMO najlepsza praktyka, aby włączyć format Data JavaScript dla JSON Converter (czyli wartości data będzie renderowanie ed jako new Date(123123123)
zamiast domyślnego formatu "2009-04-16T00: 00: 00Z"), więc nie musisz przejmować się formatem daty ani strefami czasowymi. Można to zrobić poprzez skonfigurowanie go w grails-app/conf/Config.groovy:
grails.converters.json.date = 'javascript'
Ja również zaimplementowane funkcjonalności po stronie serwera dla wtyczki filtra siatki, różne kombinacje implementacje pole kombi (z zdalne autouzupełnianie), drzewa, formularze itp. Jeśli chcesz zobaczyć więcej przykładowego kodu, daj mi znać.
ExtJS 3.0 (obecnie RC) integruje się jeszcze lepiej z Grails, ponieważ DataStores zapewnia opcję wysyłania danych z powrotem do backendu, aby zachować ciągłość. Podejście Ext.Direct zapewnia nowe możliwości, jak również :-)
To jest świetna informacja. Wielkie dzięki! –