博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring使用rssfeed
阅读量:4979 次
发布时间:2019-06-12

本文共 3470 字,大约阅读时间需要 11 分钟。

spring使用rssfeed

import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;import mypackage.rss.view.RssFeedView;/** * 栏目稿件RSS订阅请求控制器类。 * */@Controller@RequestMapping({
"/rss/c/{columnId}"})public class ColumnStoriesRssController { @RequestMapping("") public ModelAndView feed() { ModelAndView modelAndView = new ModelAndView(); // TODO 从本地缓存获取稿件数据 modelAndView.addObject(RssFeedView.ITEMS_KEY, null); modelAndView.setView(new RssFeedView()); return modelAndView; }}

 RSS Feed 视图类

import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.jdom2.Element;import org.springframework.web.servlet.view.feed.AbstractRssFeedView;import mypackage.domain.model.NrCompoStory;import mypackage.domain.model.NrGalleryStory;import mypackage.domain.model.NrStory;import mypackage.domain.model.NrVideoStory;import mypackage.framework.infras.exception.UnexpectedException;import com.rometools.rome.feed.rss.Channel;import com.rometools.rome.feed.rss.Item;/** * RSS Feed 视图类。 * */public class RssFeedView extends AbstractRssFeedView {    /**     * RSS稿件列表KEY     */    public static final String ITEMS_KEY = "RSS_ITEMS";    /**     * {
@inheritDoc} */ @Override protected Channel newFeed() { Channel channel = new Channel("rss_2.0"); channel.setTitle("${title}"); channel.setLink("${link}"); channel.setEncoding("UTF-8"); channel.setDescription("${description}"); return channel; } /** * {
@inheritDoc} */ @Override protected List
buildFeedItems(Map
model, HttpServletRequest request, HttpServletResponse response) throws Exception { @SuppressWarnings("unchecked") List
stories = (List
)model.get(ITEMS_KEY); List
result = new ArrayList
(); if (stories != null) { for (NrStory story : stories) { result.add(createItem(story)); } } return result; } /** * 通过稿件创建RSS Item * * @param story 稿件 * @return RSS Item */ private Item createItem(NrStory story) { Item result = null; if (story instanceof NrCompoStory) { result = createCompoItem((NrCompoStory)story); } else if (story instanceof NrGalleryStory) { result = createGalleryItem((NrGalleryStory)story); } else if (story instanceof NrVideoStory) { result = createVideoItem((NrVideoStory)story); } else { throw new UnexpectedException("unknow story type.(" + story.getClass().getName() + ")"); } return result; } /** * 通过图文稿件创建RSS Item * * @param story 稿件 * @return RSS Item */ private Item createCompoItem(NrCompoStory story) { Item result = new Item(); result.setTitle(""); result.setLink(""); result.setDescription(null); result.setPubDate(null); Element element = null;//
//
// (see detail in next page)//
// …...//
result.setForeignMarkup(Arrays.asList(element)); return result; } /** * 通过图集稿件创建RSS Item * * @param story 稿件 * @return RSS Item */ private Item createGalleryItem(NrGalleryStory story) { return null; } /** * 通过视频稿件创建RSS Item * * @param story 稿件 * @return RSS Item */ private Item createVideoItem(NrVideoStory story) { return null; }}

 

转载于:https://www.cnblogs.com/zhao1949/p/6931841.html

你可能感兴趣的文章
Maven报错Please ensure you are using JDK 1.4 or above and not a JRE解决方法!
查看>>
<Android基础> (五) 广播机制
查看>>
数论——lucas定理
查看>>
Flash按钮
查看>>
出现Data Tools 与VS 不兼容问题
查看>>
CSS实例:图片导航块
查看>>
SQL CASE 语句
查看>>
第十三周总结
查看>>
HOJ13907 Diana and the Golden Apples
查看>>
抽象类实现接口
查看>>
记一次失败的面试
查看>>
微服务
查看>>
禁止移动端safari浏览器双击放大事件
查看>>
Socket编程的面纱
查看>>
CSS hack方式一览
查看>>
sublime text3 注册码
查看>>
Linux ps命令详解与示例说明
查看>>
最简单的git 用法
查看>>
剑指offer--面试题20
查看>>
Lombok使用与原理
查看>>