rss spring 接口_spring mvc: rss(xml)输出

准备:

rss包插件

Rome 库及其依赖项rome-utils,jdom和slf4j

com.rometools

rome

1.8.0

com.rometools

rome-utils

1.8.0

org.jdom

jdom

2.0.2

org.slf4j

slf4j-api

1.7.7

需要Bean视图解析

同时需要 一个RSSFeedViewer.java(类似的java来实现view视图)

需要继承:org.springframework.web.servlet.view.feed.AbstractRssFeedView 并复写:buildFeedItems,buildFeedMetadata

视图名:rssViewer(id名)

RSS的基本元素

RSSMessage.java

package json;

import java.util.Date;

public class RSSMessage {

String title;

String url;

String summary;

Date createDate;

public String getTitle() {

return title;

}

public void setTitle(String title) {

this.title = title;

}

public String getUrl() {

return url;

}

public void setUrl(String url) {

this.url = url;

}

public String getSummary() {

return summary;

}

public void setSummary(String summary) {

this.summary = summary;

}

public Date getCreateDate() {

return createDate;

}

public void setCreateDate(Date createDate) {

this.createDate = createDate;

}

}

RSSFeedViewer视图view,继承AbstractRssFeedView(org.springframework.web.servlet.view.feed.AbstractRssFeedView)

并复写:buildFeedMetadata, buildFeedItems

其中:buildFeedMetadata是增加rss(xml)的说明性的内容,buildFeedItems对数据重新组长成需要的格式

其中:List list = (List) model.get("person"); 是RssController.java传递过来的

package json;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.view.feed.AbstractRssFeedView;

import com.rometools.rome.feed.rss.Channel;

import com.rometools.rome.feed.rss.Content;

import com.rometools.rome.feed.rss.Item;;

public class RSSFeedViewer extends AbstractRssFeedView {

@Override

protected List buildFeedItems(Map model, HttpServletRequest request,

HttpServletResponse response) throws Exception {

// TODO Auto-generated method stub

//获取controller渲染过来的数据

List list = (List) model.get("person");

List items = new ArrayList(list.size());

for(RSSMessage tempContent: list)

{

Item item = new Item();

Content content = new Content();

content.setValue(tempContent.getSummary());

item.setContent(content);

item.setTitle(tempContent.getTitle());

item.setLink(tempContent.getUrl());

item.setPubDate(tempContent.getCreateDate());

items.add(item);

}

return items;

}

@Override

protected void buildFeedMetadata(Map model, Channel feed, HttpServletRequest request) {

// TODO Auto-generated method stub

//设置头部信息

feed.setTitle("school");

feed.setDescription("suzhou school");

feed.setLink("http://www.sina.com.cn");

super.buildFeedMetadata(model, feed, request);

}

}

RssController.java

其中:mv.addObject("person", list) 是传递到RSSFeedViewer视图中去的

package json;

import java.util.ArrayList;

import java.util.Date;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.servlet.ModelAndView;

@Controller

public class RssController {

@RequestMapping(value="/rss/list", method=RequestMethod.GET)

public ModelAndView rss()

{

List list = new ArrayList();

RSSMessage rss = new RSSMessage();

rss.setTitle("张三");

rss.setUrl("http://www.sina.com.cn");

rss.setSummary("张三合肥市委书记,省委常委...");

rss.setCreateDate(new Date());

list.add(rss);

rss.setTitle("李四");

rss.setUrl("http://www.baidu.com");

rss.setSummary("李四省委秘书长,合肥市委副书记...");

rss.setCreateDate(new Date());

list.add(rss);

ModelAndView mv = new ModelAndView();

mv.setViewName("rssViewer");

mv.addObject("person", list);

return mv;

}

}

访问地址:http://localhost:8080/gugua3/rss/list

school

http://www.sina.com.cn

suzhou school

鏉庡洓

http://www.baidu.com

鏉庡洓鐪佸绉樹功闀匡紝鍚堣偉甯傚鍓功璁�...

Thu, 17 May 2018 03:51:46 GMT

鏉庡洓

http://www.baidu.com

鏉庡洓鐪佸绉樹功闀匡紝鍚堣偉甯傚鍓功璁�...

Thu, 17 May 2018 03:51:46 GMT

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值