将ext2 的feed改到java环境下运行

把ext2中的feed示例,改到java环境下运行,增加了在数据库中动态添加feed的功能。
java里面处理RSS的类库感觉有点杂,选了一个syndication用了一下,感觉还可以。

返回feed的方法,这个方法实在太简单

Java代码
  1. public SyndFeed getSyndFeed(String url) {   
  2.     // TODO Auto-generated method stub   
  3.     URL feedUrl;   
  4.     SyndFeedInput input;   
  5.     SyndFeed feed=null;   
  6.     try {   
  7.         feedUrl = new URL(url);   
  8.         input= new SyndFeedInput();   
  9.         feed= input.build(new XmlReader(feedUrl));   
  10.     } catch (MalformedURLException e) {   
  11.         // TODO Auto-generated catch block   
  12.         e.printStackTrace();   
  13.     } catch (IllegalArgumentException e) {   
  14.         // TODO Auto-generated catch block   
  15.         e.printStackTrace();   
  16.     } catch (FeedException e) {   
  17.         // TODO Auto-generated catch block   
  18.         e.printStackTrace();   
  19.     } catch (IOException e) {   
  20.         // TODO Auto-generated catch block   
  21.         e.printStackTrace();   
  22.     }   
  23.        
  24.     return feed;   
  25. }  


写个方法,有点守旧,老的struts,用2.0,大同小异~~

Java代码 复制代码
  1. public ActionForward parseFeed(ActionMapping mapping, ActionForm form,   
  2.         HttpServletRequest request, HttpServletResponse response) {   
  3.     Map params = super.getRequestParameterMap(request);   
  4.     String feedUrl = "";   
  5.     String json = "";   
  6.     if (params.containsKey(StringPool.FEED_FEED)) {   
  7.         if (params.get(StringPool.FEED_FEED) != null) {   
  8.             feedUrl = params.get(StringPool.FEED_FEED).toString();   
  9.         }   
  10.     }   
  11.     if (StringUtils.isEmpty(feedUrl)) {   
  12.         String feedId = "";   
  13.         if (params.containsKey(StringPool.ENTITY_ID)) {   
  14.             feedId = params.get(StringPool.ENTITY_ID).toString();   
  15.         }   
  16.         if (StringUtils.isNotEmpty(feedId)) {   
  17.             Feed feed = (Feed) this.getEntity(Feed.class, feedId);   
  18.             feedUrl = feed.getUrl();   
  19.         }   
  20.     }   
  21.     if (StringUtils.isNotEmpty(feedUrl)) {   
  22.         // json=this.getFeedParseService().getAllFeeds(feedUrl);   
  23.         // this.jsonPrint(response, json);   
  24.         SyndFeedOutput output = new SyndFeedOutput();   
  25.         SyndFeed feed = this.getFeedParseService().getSyndFeed(feedUrl);   
  26.         response.setCharacterEncoding("UTF-8");   
  27.         try {   
  28.             response.setContentType("text/xml ");   
  29.             PrintWriter out = (PrintWriter) response.getWriter();   
  30.             String feedContent = output.outputString(feed).toString();   
  31.             out.print(feedContent);   
  32.             // 发布为feed   
  33.             // output.output(feed, response.getWriter());   
  34.         } catch (FeedException e) {   
  35.             // TODO Auto-generated catch block   
  36.             e.printStackTrace();   
  37.         } catch (IOException e) {   
  38.             // TODO Auto-generated catch block   
  39.             e.printStackTrace();   
  40.         }   
  41.     }   
  42.   
  43.     return null;   
  44. }  



整体来说,没有什么难的,挺顺的,输出的 xml要处理一下,里面的<dc:creator>要做一下替换。别的没什么~~

附个js 包,跟示例没什么差别,用示例就行~~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值