您的位置:首页 > 运维架构 > 网站架构

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

2008-04-16 16:02 801 查看

<%@ 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: