2009-06-03 25 views
8

Czy ktoś zbudował aplikację grails przy użyciu extjs jako nakładki? Czy są jakieś pułapki lub pułapki, którymi chciałbyś się podzielić?Doświadczenie w korzystaniu z extjs z grails?

Wygląda na to, że format wyjściowy JSON przez grails domyślnie różni się od tego, czego oczekuje extjs, ale czy jest to tylko kwestia dostosowania JSON po stronie grails?

Odpowiedz

13

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ż :-)

+0

To jest świetna informacja. Wielkie dzięki! –

Powiązane problemy