现在是2008-12-05 18:59:40,查看已提交项目、已收录的Blogs或者公司信息
请登录添加新项目、加入项目、点评别人的项目,或者 新注册? 提交Bug反馈.
iTechTag beta..
技能声望创造无限价值..
使用Grails和Rome产生Rss
阅读次数:74 | 订阅者:山下的人 | 来源:山下的人 | 文章作者: wenson | 发表时间: 2008-09-08
作者: wenson
链接:http://wenson.javaeye.com/blog/239355
发表时间: 2008年09月08日
声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!
Grails本身好像并没有产生rss的插件。如果要用grails产生Rss,可以使用Rome。方法大概如下:
下载需要的库文件
到https://rome.dev.java.net/下载Rome,之后把rome-xxx.jar放到你的grails项目的lib目录下。这里xxx是版本号。比如我的是rome-1.0RC1.jar
再到http://www.jdom.org/下载JDom。之后同样是把jdom.jar放到lib目录下。
书写代码
创建一个controller,当然你也可以在你已经有的controller里面增加相应方法。这里我们创建一个叫做FeedController的类。
view plaincopy to clipboardprint?
import com.sun.syndication.feed.synd.*;
import com.sun.syndication.io.SyndFeedOutput;
class FeedController {
def supportedFormats = [ "rss_0.90", "rss_0.91", "rss_0.92", "rss_0.93", "rss_0.94", "rss_1.0", "rss_2.0", "atom_0.3"]
def rss = {
render(text: getFeed("rss_1.0"), contentType:"text/xml", encoding:"UTF-8")
}
def atom = {
render(text: getFeed("atom_1.0"), contentType:"text/xml", encoding:"UTF-8")
}
// or specify your own feed type
def all = {
def format = params.id
if (supportedFormats.contains(format)) {
render(text: getFeed(format), contentType:"text/xml", encoding:"UTF-8")
} else {
response.sendError(response.SC_FORBIDDEN);
}
}
def getFeed(feedType) {
def items = Post.list(max: 5, sort: "created", order: "desc")
def entries = []
items.each { item ->
def desc = new SyndContentImpl(type: "text/plain", value: item.description);
def entry = new SyndEntryImpl(title: item.name + " - " + item.summary,
link: 'http://www.ondev.net/item/show/' + item.name,
publishedDate: item.created, description: desc);
entries.add(entry);
}
SyndFeed feed = new SyndFeedImpl(feedType: feedType, title: '标题',
link: 'http://www.ondev.net', description: '说明性文字',
entries: entries);
StringWriter writer = new StringWriter();
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,writer);
writer.close();
return writer.toString();
}
}
之后访问相应的页面,比如说http://www.ondev.net/feed/rss就可以了
转自:http://www.ondev.net/story/show/75;jsessionid=F309C69F29088C3FF0C1DFFAA7255AF5
已有 0 人发表留言,猛击->>这里<<-参与讨论
JavaEye推荐
北京: 千橡集团暨校内网诚聘软件研发工程师搜狐网站诚聘Java、PHP和C++工程师
技能云友情提示您: 如果您对本文观点感兴趣,欢迎到原文出处讨论,谢谢!
基本信息
该Feed的其他内容
-
OSCache使用介紹
来源:山下的人 | 作者: wenson | 发表: 2008-10-16
作者: wenson 链接:http://wenson.javaeye.c...
-
linux 绑定多个ip
来源:山下的人 | 作者: wenson | 发表: 2008-09-17
作者: wenson 链接:http://wenson.javaeye.c...
该用户的其他内容
-
OSCache使用介紹
来源:山下的人 | 作者: wenson | 发表: 2008-10-16
作者: wenson 链接:http://wenson.javaeye.c...
-
linux 绑定多个ip
来源:山下的人 | 作者: wenson | 发表: 2008-09-17
作者: wenson 链接:http://wenson.javaeye.c...
-
使用Grails和Rome产生Rss
来源:山下的人 | 作者: wenson | 发表: 2008-09-08
作者: wenson 链接:http://wenson.javaeye.com/blog/23...
-
event.keycode值大全
来源:山下的人 | 作者: wenson | 发表: 2008-07-23
作者: wenson 链接:http://wenson.javaeye.com/blog/21...
-
Grails中实现用户即时在线状态的记录与读取
来源:山下的人 | 作者: wenson | 发表: 2008-07-14
作者: wenson 链接:http://wenson.javaeye.com/blog/21...
-
Linux cron 配置样例
来源:山下的人 | 作者: wenson | 发表: 2008-07-11
作者: wenson 链接:http://wenson.javaeye.com/blog/21...
-
一篇建立NFS服務器的教程資料
来源:山下的人 | 作者: wenson | 发表: 2008-07-11
作者: wenson 链接:http://wenson.javaeye.com/blog/21...
-
linux文件同步工具Unison的使用
来源:山下的人 | 作者: wenson | 发表: 2008-07-11
作者: wenson 链接:http://wenson.javaeye.com/blog/21...