使用Rome实现网站RSS发布的简单步骤

<%@ page language= "java" contentType= "text/html; charset=UTF-8" pageEncoding= "UTF-8"%>
<%@include file= "package.inc.jsp"%>
<%@page import= "org.jdom.*,com.sun.syndication.feed.synd.*,com.sun.syndication.io.SyndFeedOutput"%>
<%
     int maxLength = 500;
    out.clearBuffer();
    SyndFeed feed = new SyndFeedImpl();
    feed.setFeedType( "rss_2.0");
    feed.setTitle( "Java世纪网,Enjoy Java, Enjoy Everyday");
    feed.setLink( "http://www.java2000.net");
    feed.setDescription("Java世纪网的最新的50个帖子列表");
    feed.setEncoding("UTF-8");    
/**//*    
    Document doc = feed.outputJDom(feed.createWireFeed());
    //create the XSL processing instruction
    Map xsl = new HashMap();
    xsl.put("href", "http://feeds.feedburner.com/~d/styles/rss2full.xsl");
    xsl.put("type", "text/xsl");
    xsl.put("media", "screen");
    ProcessingInstruction pXsl = new ProcessingInstruction("xml-stylesheet", xsl);
    doc.addContent(0, pXsl);
    //create the CSS processing instruction
    Map css = new HashMap();
    css.put("href", "http://feeds.feedburner.com/~d/styles/itemcontent.css");
    css.put("type", "text/css");
    css.put("media", "screen");
    ProcessingInstruction pCss = new ProcessingInstruction("xml-stylesheet", css);    
    doc.addContent(1, pCss);    
    */
    
    List<SyndEntry> entries = new ArrayList<SyndEntry>();
    SyndEntry entry;
    SyndContent description;
    PostService ps = (PostService) Factory.getBean("PostService");
    Collection<Post> pList = ps.findAll(-1, 0, 50);
    for (Post p : pList) ...{
        entry = new SyndEntryImpl();
        entry.setTitle(p.getUser().getUsername()+"("+p.getUser().getNickName()+")"+(p.getIdParent()==0?"发表了":"回复了")+":"+p.getSubject());
        entry.setLink("http://www.java2000.net/viewthread.jsp?tid=" + p.getId() + "");
        entry.setPublishedDate(p.getDatetime());
        description = new SyndContentImpl();
        description.setType("text/html");
        if(p.getContent().length()>maxLength)...{
            description.setValue(p.getContent().substring(0,maxLength)+"<br/><br/>【内容太长,只显示了前"+maxLength+"字,更多内容请看全文】");
        }else...{
            description.setValue(p.getContent());
        }
        entry.setDescription(description);
        entries.add(entry);
    }
    feed.setEntries(entries);
    try ...{
        SyndFeedOutput output = new SyndFeedOutput();
        out.print(output.outputString(feed));
    } catch (Exception ex) ...{
        ex.printStackTrace();
    }
%>
    

代码很简单,中间屏蔽的部分是我还没有测试的,自定义xsl的部分。

其他的都已经正常运行,测试地址 http://www.java2000.net/rss.jsp

你可能感兴趣的:(rss,职场,网站,休闲,rome)