spring 3 里面新增加了下面两个类,用来方便的实现rss和atom
org.springframework.web.servlet.view.feed.AbstractRssFeedView
org.springframework.web.servlet.view.feed.AbstractAtomFeedView
下面演示用spring 3实现rss,除了加入spring 3的web.servlet包外,还要加入rome-1.0.jar和jdom.jar
在spring配置文件中加入
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/>
用于显示数据的Item
public class RssItem {
private String title;
private String author;
private Date datePublished;
private String description;
private String link;
}
用spring mvc 来处理一个地址请求
@Controller
public class FeedController {
@RequestMapping("/rss")
public String rss(Model model) {
List<RssItem> rssItems = new ArrayList<RssItem>();
RssItem n = new RssItem();
n.setTitle("中国内地发现8例甲流病毒变异病例");
n.setDescription("世卫组织证实内地曾出现甲流病毒变种...");
n.setLink("http://news.163.com/09/1125/17/5OVTJVQF000120GU.html");
n.setAuthor("新华网");
n.setDatePublished(new Date());
rssItems.add(n);
//加入一个Demo的list数据
model.addAttribute("rssItemList", rssItems);
//频道的相关信息
model.addAttribute("feedTitle","网易头条新闻");
model.addAttribute("feedDesc","头条新闻");
model.addAttribute("feedLink","http://news.163.com/");
return "rssView";
}
}
继承AbstractRssFeedView类,实现buildFeedMetadata,buildFeedItems方法
@Component("rssView")
public class RssView extends AbstractRssFeedView {
@Override
protected void buildFeedMetadata(Map<String,Object> model, Channel feed,
HttpServletRequest request) {
String feedTitle = (String)model.get("feedTitle");
String feedDesc = (String)model.get("feedDesc");
String feedLink = (String)model.get("feedLink");
feed.setTitle(feedTitle);
feed.setDescription(feedDesc);
feed.setLink(feedLink);
}
@Override
protected List<Item> buildFeedItems(Map<String, Object> model,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
@SuppressWarnings("unchecked")
List<RssItem> rssItems = (List<RssItem>) model.get("rssItemList");
List<Item> feedItems = new ArrayList<Item>();
for (RssItem rssItem : rssItems) {
Item feedItem = new Item();
feedItem.setTitle(rssItem.getTitle());
feedItem.setAuthor(rssItem.getAuthor());
feedItem.setPubDate(rssItem.getDatePublished());
Description desc = new Description();
desc.setType("text/html");
desc.setValue(rssItem.getDescription());
feedItem.setDescription(desc);
feedItem.setLink(rssItem.getLink());
feedItems.add(feedItem);
}
return feedItems;
}
}
分享到:
相关推荐
Rome是一个Java库,专门用于处理RSS和Atom feeds,帮助开发者实现RSS订阅功能。然而,在处理中文字符时,Rome可能会遇到编码问题,导致中文显示为乱码。本文将深入探讨如何解决使用Rome处理RSS订阅时遇到的中文出错...
在这个方法中,我们使用`XmlReader`从URL获取RSS XML内容,然后用`SyndFeedInput`构建了一个`SyndFeed`对象,该对象包含了RSS feed的所有信息,如标题、描述、条目等。 有了`SyndFeed`对象,我们可以方便地访问RSS ...
ROME可以帮助开发者实现RSS/Atom订阅功能,例如定期检查feed更新,获取新条目,并将这些条目集成到自己的应用中。 5. **自定义和扩展** 由于RSS和Atom标准允许扩展,Rome提供了一种灵活的方式添加自定义元素和...
1. **RSS和Atom Feed解析**:Rome库提供了`RSSModule`和`AtomModule`类,它们实现了JSR 172(JavaTM API for XML Processing, JAXP)的`Unmarshaller`接口,能够将XML数据转换为Java对象。通过这些模块,开发者可以...
在"ROME + JDOM轻松实现RSS的操作"这个主题中,我们将探讨如何使用这两者来实现RSS的生成和解析。首先,你可以通过以下步骤使用ROME解析RSS URL: 1. 引入ROME库:在项目中添加ROME的依赖,这通常通过Maven或Gradle...
Rome 是一个基于 Java 的开源项目,提供了一组 Atom/RSS 工具类,以使得用 Java 可以更方便和快捷地操作大部分 Syndication 格式数据。Rome 需要 JDK1.4 以上版本和 JDom.jar。 Rome 的主要功能包括解析器和生成器...
本篇文章将深入探讨RSS和Atom聚合规范以及如何使用工具如Rome和rssutils来解析XML文件。 首先,让我们了解RSS和Atom的基本概念。RSS是一种基于XML的格式,用于发布经常更新的内容,如新闻标题、摘要和链接。RSS文件...
在本案例中,“rss实现新闻消息订阅.rar”是一个压缩包文件,其中可能包含了使用Java的Rome库来实现RSS订阅的示例代码和相关资源。 Rome是一个开源的Java库,专门用于处理RSS和Atom feeds。它提供了读取、写入以及...
通过使用ROME,开发者可以轻松地解析、创建和更新RSS和Atom feeds,从而快速构建RSS相关的应用程序。 1. **API接口**:ROME1.0提供了一套清晰、易于使用的API,允许开发者创建和操作RSS和Atom feeds。例如,你可以...
Rome库是Java中广泛使用的工具,用于处理RSS和Atom feeds。它提供了一系列API,简化了RSS和Atom格式的创建、解析和更新过程。开发者可以使用Rome库轻松地将RSS数据集成到他们的Java应用中,无论是从网络抓取RSS源,...
`rss_feed_jar`可能指的是包含RSS feed处理功能的库,而`rss_java`则指明是用Java实现的RSS功能。 在压缩包内的文件列表“RSS相关资料”中,我们可以期待找到以下内容: 1. Rome.jar:这是Rome库的jar文件,包含...
8. **“ROME新闻提要工具包”** - ROME(Really Open Meta-Programming Environment)是一个Java工具包,用于处理RSS和Atom提要,本章详细介绍了ROME的使用方法和功能。 9. **“如何提供新闻提要”** - 解释了如何...
RSSJava提供了一组API来创建、读取和写入RSS feeds,而Rome则是一个更全面的库,支持RSS和Atom格式,包含了解析、生成和订阅功能。 7. **RSS更新通知**: 虽然RSS本身不提供更新通知机制,但可以通过结合Webhooks...
JDOM(Java Document Object Model)是一个用纯Java实现的DOM(Document Object Model)解析器。DOM是一种W3C标准,用于将XML文档表示为一棵树形结构,其中每个节点代表XML文档的一部分。JDOM提供了API来创建、修改...
使用这些库进行RSS开发时,你可以实现以下功能: - **创建RSS feeds**:通过使用RSSLibJ或Rome,可以轻松构建RSS feed的XML结构,定义标题、描述、链接、作者等元素。 - **解析RSS feeds**:从RSS源下载XML数据,...
标题中的“rome-1.0 jdom 第一个RSS发布实例”揭示了本次讨论的主要内容,涉及到两个关键的Java库——Rome和JDOM,以及如何使用它们来创建和发布RSS(Really Simple Syndication) feed。RSS是一种XML格式,用于发布...
总的来说,Rome是一个强大且易于使用的Java库,它简化了RSS和Atom feed的处理流程,为开发者提供了强大的工具,使他们能够更专注于应用程序的其他核心功能。对于需要处理新闻聚合或内容发布系统的项目,Rome无疑是一...
在实际开发中,如果你的项目需要发布RSS馈送或者处理来自RSS源的数据,结合使用JDOM和ROME可以极大地简化工作流程。JDOM处理XML的基本结构,而ROME则专注于RSS的特定需求。这两个库的组合,使得在Java环境中开发RSS...
通过了解和使用Rome,开发者可以轻松地实现对网络新闻聚合的需求,比如解析百度RSS新闻的不同栏目,获取实时资讯。 1. **Rome框架概述** - Rome是一个轻量级的Java库,专注于XML feeds的处理,支持RSS 0.9x, RSS ...