【发布时间】:2009-06-03 02:47:14
【问题描述】:
有没有人使用 extjs 作为前端构建了一个 grails 应用程序?
您是否愿意分享任何陷阱或陷阱?
看起来 grails 默认输出的JSON 格式与 extjs 所期望的完全不同,但这只是在grails 端自定义JSON 的问题吗?
【问题讨论】:
有没有人使用 extjs 作为前端构建了一个 grails 应用程序?
您是否愿意分享任何陷阱或陷阱?
看起来 grails 默认输出的JSON 格式与 extjs 所期望的完全不同,但这只是在grails 端自定义JSON 的问题吗?
【问题讨论】:
我经常使用 Grails + ExtJS 的组合,它很容易实现。通过在控制器中执行以下操作可以轻松实现网格的 JSON 输出:
def list = {
def books = Book.list(params)
render( [ items: books, totalCount: Book.count() ] as JSON )
}
这将产生“Ext-compatible” 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" }
});
在处理日期值时,IMO 的最佳做法是为 JSON 转换器启用 Javascript 日期格式(即日期值将呈现为 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 方法也提供了新的可能性:-)
【讨论】:
看到这个
http://ffzhuang.blogspot.com/2009/03/build-j2ee-application-with-extjs.html
这是一个很好的例子,整个网站 www.feyasoft.com 在 extjs + grails 下运行。您可以试试我们的日历 - 开源。
【讨论】: