注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

小葫芦君(汉斯的博客)

博客迁移到新博客:https://blog.ssxingshou.com

 
 
 

日志

 
 
关于我

小小葫芦商城,为您提供高品质的商品,一流的产品,一流的包装服务,一流的物流服务,放心购买

网易考拉推荐

Spring MVC 中使用AbstractRssView  

2007-08-14 11:52:32|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

import java.util.Map;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
import org.springframework.web.servlet.view.AbstractView;  
import com.sun.syndication.feed.synd.SyndFeed;  
import com.sun.syndication.feed.synd.SyndFeedImpl;  
import com.sun.syndication.io.SyndFeedOutput;  
 
public abstract class AbstractRssView extends AbstractView {  
    private static final String DEFAULT_FEED_TYPE = "atom_1.0";  
 
    private static final String FEED_TYPE = "feedType";  
 
    private String defaultFeedType;  
 
    private String baseUrl;  
 
    public AbstractRssView() {  
        setContentType("text/xml; charset=UTF-8");  
        setDefaultFeedType(DEFAULT_FEED_TYPE);  
    }  
 
    protected final void renderMergedOutputModel(Map model,  
            HttpServletRequest request, HttpServletResponse response)  
            throws Exception {  
        setBaseUrl(request);  
        SyndFeed feed = newSyndFeed();  
        buildFeed(model, request, response, feed);  
        String feedType = request.getParameter(FEED_TYPE);  
        feedType = (feedType != null) ? feedType : getDefaultFeedType();  
        feed.setFeedType(feedType);  
        response.setContentType(getContentType());  
        SyndFeedOutput output = new SyndFeedOutput();  
        output.output(feed, response.getWriter());  
    }  
 
    protected abstract void buildFeed(Map model, HttpServletRequest request,  
            HttpServletResponse respons, SyndFeed feed) throws Exception;  
 
    protected SyndFeed newSyndFeed() {  
        return new SyndFeedImpl();  
    }  
 
    protected String getBaseUrl() {  
        return this.baseUrl;  
    }  
 
    protected void setBaseUrl(HttpServletRequest request) {  
        StringBuffer sb = new StringBuffer();  
        sb.append("http://");  
        sb.append(request.getServerName());  
        sb.append(":");  
        sb.append(request.getServerPort());  
        sb.append(request.getContextPath());  
        sb.append("/");  
        this.baseUrl = sb.toString();  
    }  
 
    public String getDefaultFeedType() {  
        return defaultFeedType;  
    }  
 
    public void setDefaultFeedType(String defaultFeedType) {  
        this.defaultFeedType = defaultFeedType;  
    }  

原类见spring module 0.6

封装对rss的支持,增加AbstractRssView ,支持RSS 0.90,RSS 0.91 Netscape, RSS 0.91 Userland,RSS 0.92,RSS 0.93,RSS 0.94,RSS 1.0,RSS 2.0,Atom 0.3, Atom 1.0等多种标准

  评论这张
 
阅读(1048)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017