发新话题

使用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<ost> 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)+"

【内容太长,只显示了前"+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();
  }
%>
快乐渡过每一天,减肥坚持每一天



编辑 回复 快速回复 TOP
学习
编辑 回复 快速回复 TOP
有例子吗?发一份可以吗老乡我的邮箱是wangsen_9999@163.com
编辑 回复 快速回复 TOP
我晕,你难道看不到我的代码吗?见鬼了!
快乐渡过每一天,减肥坚持每一天
编辑 回复 快速回复 TOP
你发的这个代码不懂得运行,运行不起来啊,能不能发个完整版的啊?
编辑 回复 快速回复 TOP
发新话题