浏览 2785 次
锁定老帖子 主题:java生成rss组件
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-02-24
主要是用到了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 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |