精通 Grails: 文件上传和 Atom 联合
2009-10-26 00:00:00 来源:WEB开发网在过去几期的 精通 Grails 文章中,您一直在逐步构建一个小型的博客服务(Blogito)。在这篇文章中,Blogito 将最终完工,成为一个实用的博客应用程序。您将为博客条目主体实现文件上传功能,并添加自己制作的用于聚合的 Atom feed。
但是,在开始之前,请注意在上一篇文章(“身份验证和授权”)中,我加入的认证使 UI 中出现一个细小的 bug。在加入新的特性之前,应该修复这个 bug。
修复隐藏的 bug
启动 Grails 时,grails-app/conf/Bootstrap.groovy 增加 2 个用户和 4 个新的博客条目。但是,如果尝试通过 Web 界面增加博客条目,会发生什么?可以使用下面的步骤试试看:
以用户名 jsmith 和密码 wordpass 登录。
单击 New Entry。
添加标题和摘要。
单击 Create。
您将看到以下错误:Property [author] of class [class Entry] cannot be null。那么,这个 bug 是如何引入到应用程序中的?毕竟,bootstrap 代码还能正常工作。
在第一篇 Blogito 文章(“改变 Grails 应用程序的外观”)中,我让您通过输入 grails generate-views Entry 生成 Groovy Server Pages(GSP)视图。在随后的文章中,我更改了 domain 类,但是从未让您再回过头来生成视图。当我添加 Entry 与 User 之间的 1:M 关系时,磁盘上的 create.gsp 视图一直不变,如清单 1 所示。(还记得吗,belongsTo 创建一个名为 author 的字段,该字段的类型为 User)。
清单 1. 打破 GSP 的 1:M 关系
class Entry {
static belongsTo = [author:User]
String title
String summary
Date dateCreated
Date lastUpdated
}
更多精彩
赞助商链接