论坛首页 Java企业应用论坛

java生成rss组件

浏览 2785 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-02-24  
闲来无事写了一个java生成RSS的小组件,本人没有参考过其他的开源的组件,不过个人认为这种输出方式比较易用,
主要是用到了java的反射机制.

大概功能:
      在你的PO里面定义某些annotaions 如:Author,Description,Guid,Link,Param,PubDate,Title
      和你需要生成RSS里面的标签是同名的

      当你从数据库取值返回List之后 值就已经进去了..

     整个调用过程如下:

//这个list是从数据库取的
List placeList =placeService.getPlaceList(cecondition, pager, request);
//这个类是创建RSS模板以及生成XML格式的类
RssTemplet rssTemplet=RssTemplet.newInstance();
Channel channel;
			try {
                                //生成具体的RSS模板
				channel = rssTemplet.createRssTemplet(placeList);
                                //设置标题头信息
				channel.setTitle("uuke 场所");
				channel.setDescription("uuke 吃喝玩乐场所列表");
				channel.setLink("http://www.uuke.cn");
				channel.setGenerator("长沙最大的吃喝玩乐社区");
                               //具体的列表项
				Set items=channel.getItems();
				Iterator iterator=items.iterator();
				while(iterator.hasNext()){
					Item item=(Item)iterator.next();
					item.setLink("http://www.uuke.cn/place/go_"+ item.getParams("placeId") +".html");
					item.setDescription(
							"<div id=\"box\">"+
							"<img src=\"http://www.uuke.cn/"+ item.getParams("isimage") +"_2.gif\" />"+
							"<p>地址:"+ item.getParams("placeAddr") +"</p>"+
							"<p>电话:"+ item.getParams("homePhone") +"</p>"+
							"<p>平均消费:"+ item.getParams("avgMonly") +"元/人</p>"+
							"<p>"+ item.getDescription() +"</p>"+
							"</div>"
							);
					item.setAuthor("uuke.cn");
					item.setGuid(item.getLink());
				}
				sb=rssTemplet.createRss(channel);
			} catch (Exception e) {
				e.printStackTrace();
			}


特别要说明的是item.getParams()
在RSS里面有一个link标签  作用是可以根据这个Link标签跳到具体的页面.
但这个时候需要得到对象的ID 或者其他的信息,才能跳过去.
所以你只需要在PO里面使用 params 的annotaion  来定义你的字段就可以获取到值

@Param
private Long id;
//gets sets
.....
item.getParams("id");就能取到

或 
@Param("p_id")
private Long id;
//gets sets
item.getParams("p_id");
也能取到
.....

具体的请看源码..

查看效果  http://www.uuke.cn/place/findTypePlace---1---rss.html
  • rss.zip (8.1 KB)
  • 下载次数: 152
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics