使用带有grails的extjs的经验?

Mik*_*ler 8 grails extjs

有没有人使用extjs作为前端构建了一个grails应用程序?

您是否有任何陷阱或陷阱需要分享?

它看起来像JSON由默认情况下它从ExtJS的预期大不相同Grails的输出格式,但它只是一个自定义的事情JSONgrails身边吗?

Sie*_*uer 13

我正在使用Grails + ExtJS的组合很多,而且很容易实现.通过在控制器中执行以下操作,可以轻松实现网格的JSON输出:

def list = {
   def books = Book.list(params)    
   render( [ items: books, totalCount: Book.count() ] as JSON )
}
Run Code Online (Sandbox Code Playgroud)

这将生成"Ext兼容"JSON,如:

{"items":[{"class":"Book","id":1,"title:"The Definitive Guide to Grails","author":"Graeme Rocher",...
Run Code Online (Sandbox Code Playgroud)

这是一个关于如何初始化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" }
});
Run Code Online (Sandbox Code Playgroud)

在处理Date值时,IMO是为JSON转换器启用Javascript Date格式的最佳实践(即.日期值将呈现为new Date(123123123)而不是默认格式"2009-04-16T00:00:00Z"),所以你不必关心日期格式或时区的东西.您可以通过在grails-app/conf/Config.groovy中配置它来完成此操作:

grails.converters.json.date = 'javascript'
Run Code Online (Sandbox Code Playgroud)

我还为网格过滤器插件实现了服务器端功能,组合框实现的各种组合(具有远程自动完成功能),树,表单等.如果您想查看更多示例代码,请告诉我.

ExtJS 3.0(目前为RC)与Grails集成得更好,因为DataStores提供了将数据发送回后端以保持持久性的选项.Ext.Direct方法也提供了新的可能性:-)