`
wjing63
  • 浏览: 22696 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用spring,rome实现rss,atom

阅读更多
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;
	}
}
分享到:
评论
2 楼 wjing63 2010-09-14  
tomcatlee 写道
请教,照你的办法写好之后,访问页面提示页面找不到

那可能是你对spring mvc的地址没有配置好
1 楼 tomcatlee 2010-09-09  
请教,照你的办法写好之后,访问页面提示页面找不到

相关推荐

    rome 实现rss订阅,中文出错解决方法

    Rome是一个Java库,专门用于处理RSS和Atom feeds,帮助开发者实现RSS订阅功能。然而,在处理中文字符时,Rome可能会遇到编码问题,导致中文显示为乱码。本文将深入探讨如何解决使用Rome处理RSS订阅时遇到的中文出错...

    java使用Rome解析Rss的实例

    在这个方法中,我们使用`XmlReader`从URL获取RSS XML内容,然后用`SyndFeedInput`构建了一个`SyndFeed`对象,该对象包含了RSS feed的所有信息,如标题、描述、条目等。 有了`SyndFeed`对象,我们可以方便地访问RSS ...

    rome,用于rss和atom提要的java库.zip

    ROME可以帮助开发者实现RSS/Atom订阅功能,例如定期检查feed更新,获取新条目,并将这些条目集成到自己的应用中。 5. **自定义和扩展** 由于RSS和Atom标准允许扩展,Rome提供了一种灵活的方式添加自定义元素和...

    rome-1.0RC2rss解析

    1. **RSS和Atom Feed解析**:Rome库提供了`RSSModule`和`AtomModule`类,它们实现了JSR 172(JavaTM API for XML Processing, JAXP)的`Unmarshaller`接口,能够将XML数据转换为Java对象。通过这些模块,开发者可以...

    ROME + JDOM轻松实现RSS的操作

    在"ROME + JDOM轻松实现RSS的操作"这个主题中,我们将探讨如何使用这两者来实现RSS的生成和解析。首先,你可以通过以下步骤使用ROME解析RSS URL: 1. 引入ROME库:在项目中添加ROME的依赖,这通常通过Maven或Gradle...

    利用Rome解析Rss

    Rome 是一个基于 Java 的开源项目,提供了一组 Atom/RSS 工具类,以使得用 Java 可以更方便和快捷地操作大部分 Syndication 格式数据。Rome 需要 JDK1.4 以上版本和 JDom.jar。 Rome 的主要功能包括解析器和生成器...

    Rss,Atom聚合规范的XML文件解析(Rome,rssutils)

    本篇文章将深入探讨RSS和Atom聚合规范以及如何使用工具如Rome和rssutils来解析XML文件。 首先,让我们了解RSS和Atom的基本概念。RSS是一种基于XML的格式,用于发布经常更新的内容,如新闻标题、摘要和链接。RSS文件...

    rss实现新闻消息订阅.rar

    在本案例中,“rss实现新闻消息订阅.rar”是一个压缩包文件,其中可能包含了使用Java的Rome库来实现RSS订阅的示例代码和相关资源。 Rome是一个开源的Java库,专门用于处理RSS和Atom feeds。它提供了读取、写入以及...

    RSS开源框架ROME1.0下载集合

    通过使用ROME,开发者可以轻松地解析、创建和更新RSS和Atom feeds,从而快速构建RSS相关的应用程序。 1. **API接口**:ROME1.0提供了一套清晰、易于使用的API,允许开发者创建和操作RSS和Atom feeds。例如,你可以...

    基于Rome做的Rss读和写

    Rome库是Java中广泛使用的工具,用于处理RSS和Atom feeds。它提供了一系列API,简化了RSS和Atom格式的创建、解析和更新过程。开发者可以使用Rome库轻松地将RSS数据集成到他们的Java应用中,无论是从网络抓取RSS源,...

    RSS.zip_Rome.jar_java r_java rss_rss feed jar_rss java

    `rss_feed_jar`可能指的是包含RSS feed处理功能的库,而`rss_java`则指明是用Java实现的RSS功能。 在压缩包内的文件列表“RSS相关资料”中,我们可以期待找到以下内容: 1. Rome.jar:这是Rome库的jar文件,包含...

    RSS and Atom in Action

    8. **“ROME新闻提要工具包”** - ROME(Really Open Meta-Programming Environment)是一个Java工具包,用于处理RSS和Atom提要,本章详细介绍了ROME的使用方法和功能。 9. **“如何提供新闻提要”** - 解释了如何...

    java实现rss的发布和订阅

    RSSJava提供了一组API来创建、读取和写入RSS feeds,而Rome则是一个更全面的库,支持RSS和Atom格式,包含了解析、生成和订阅功能。 7. **RSS更新通知**: 虽然RSS本身不提供更新通知机制,但可以通过结合Webhooks...

    jdom和rome1.0包

    JDOM(Java Document Object Model)是一个用纯Java实现的DOM(Document Object Model)解析器。DOM是一种W3C标准,用于将XML文档表示为一棵树形结构,其中每个节点代表XML文档的一部分。JDOM提供了API来创建、修改...

    java_rss.rar_EXML.jar _RSSLibJ _rome jar_rome.j

    使用这些库进行RSS开发时,你可以实现以下功能: - **创建RSS feeds**:通过使用RSSLibJ或Rome,可以轻松构建RSS feed的XML结构,定义标题、描述、链接、作者等元素。 - **解析RSS feeds**:从RSS源下载XML数据,...

    rome-1.0 jdom 第一个RSS发布实例

    标题中的“rome-1.0 jdom 第一个RSS发布实例”揭示了本次讨论的主要内容,涉及到两个关键的Java库——Rome和JDOM,以及如何使用它们来创建和发布RSS(Really Simple Syndication) feed。RSS是一种XML格式,用于发布...

    rome-0.9.jar

    总的来说,Rome是一个强大且易于使用的Java库,它简化了RSS和Atom feed的处理流程,为开发者提供了强大的工具,使他们能够更专注于应用程序的其他核心功能。对于需要处理新闻聚合或内容发布系统的项目,Rome无疑是一...

    jdom+rome JAR包

    在实际开发中,如果你的项目需要发布RSS馈送或者处理来自RSS源的数据,结合使用JDOM和ROME可以极大地简化工作流程。JDOM处理XML的基本结构,而ROME则专注于RSS的特定需求。这两个库的组合,使得在Java环境中开发RSS...

    rome源码包和jar包

    通过了解和使用Rome,开发者可以轻松地实现对网络新闻聚合的需求,比如解析百度RSS新闻的不同栏目,获取实时资讯。 1. **Rome框架概述** - Rome是一个轻量级的Java库,专注于XML feeds的处理,支持RSS 0.9x, RSS ...

Global site tag (gtag.js) - Google Analytics