⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rss.java

📁 一个jsp写的bbs
💻 JAVA
字号:
package com.laoer.bbscs.web.action;

import java.net.*;
import java.util.*;
import javax.servlet.http.*;

import org.apache.commons.logging.*;
import org.apache.struts.action.*;
import org.jdom.*;
import org.jdom.output.*;
import com.laoer.bbscs.bean.*;
import com.laoer.bbscs.comm.*;
import com.laoer.bbscs.service.*;
import com.laoer.bbscs.service.config.*;
import com.laoer.bbscs.web.form.*;
import com.sun.syndication.feed.synd.*;
import com.sun.syndication.io.*;
import com.laoer.bbscs.service.web.Pages;
import com.laoer.bbscs.service.web.PageList;

public class Rss
    extends BaseAction {

  private static final Log logger = LogFactory.getLog(Rss.class);

  private ForumService forumService;

  private SysConfig sysConfig;

  private BoardService boardService;

  public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                               HttpServletResponse response) {
    ForumBaseForm forumBaseForm = (ForumBaseForm) form;

    SyndFeed feed = new SyndFeedImpl();
    feed.setFeedType("rss_2.0");
    String postLink = "";
    if (forumBaseForm.getBid() == 0) {

      feed.setTitle(this.getSysConfig().getForumName());
      feed.setLink(this.getSysConfig().getForumUrl());
      feed.setDescription(this.getSysConfig().getWebName() + " - " + this.getSysConfig().getForumName());

      List entries = new ArrayList();
      SyndEntry entry;
      SyndContent description;

      List newfs = this.getForumService().findForumsAllNew(50);
      for (int i = 0; i < newfs.size(); i++) {
        Forum f = (Forum) newfs.get(i);
        try {
          postLink = BBSCSUtil.absoluteActionURL(request,
                                                 "/main.bbscs?action=read&bid=" + f.getBoardID() + "&postID=" +
                                                 f.getMainID()).toString();
        }
        catch (MalformedURLException ex) {
          postLink = "";
        }

        entry = new SyndEntryImpl();
        entry.setTitle(f.getTitle());
        entry.setLink(postLink);

        description = new SyndContentImpl();
        if (f.getEditType() == 0) {
          description.setType("text/plain");
        }
        else {
          description.setType("text/html");
        }
        description.setValue(BBSCSUtil.getSpeShortString(f.getDetail(), 400, ""));
        entry.setDescription(description);
        entries.add(entry);

      }
      feed.setEntries(entries);
      try {
        SyndFeedOutput output = new SyndFeedOutput();
        //String feedStr = output.outputString(feed);
        Document messagesDocument = output.outputJDom(feed);
        Format format = Format.getPrettyFormat();
        format.setOmitDeclaration(true);
        XMLOutputter xmlo = new XMLOutputter(format);
        request.setAttribute("xmlo", xmlo);
        request.setAttribute("messagesDocument", messagesDocument);
        return mapping.findForward(this.FORWARD_AJAX);
      }
      catch (Exception ex1) {
        logger.error(ex1);
      }
    }
    else {
      if (forumBaseForm.getPage() == 0) {
        forumBaseForm.setPage(1);
      }
      long bid = forumBaseForm.getBid();
      Board board = this.getBoardService().getBoardByID(bid);
      if (board != null) {
        if (board.getBoardType() == 2 || board.getBoardType() == 3) {
          String forumLink = "";
          try {
            forumLink = BBSCSUtil.absoluteActionURL(request, "/forum.bbscs?action=index&bid=" + bid).toString();
          }
          catch (MalformedURLException ex2) {
            forumLink = "";
          }
          feed.setTitle(this.getSysConfig().getForumName() + " - " + board.getBoardName());
          feed.setLink(forumLink);
          feed.setDescription(this.getSysConfig().getWebName() + " - " + this.getSysConfig().getForumName() +
                              " - " + board.getBoardName());

          List entries = new ArrayList();
          SyndEntry entry;
          SyndContent description;

          Pages pages = new Pages();
          pages.setPage(forumBaseForm.getPage());
          pages.setPerPageNum(40);
          pages.setFileName("");

          PageList pl = this.getForumService().findForumsMainWWW(bid, pages);
          List flist = pl.getObjectList();

          for (int i = 0; i < flist.size(); i++) {
            Forum f = (Forum) flist.get(i);
            try {
              postLink = BBSCSUtil.absoluteActionURL(request,
                  "/main.bbscs?action=read&bid=" + f.getBoardID() + "&postID=" +
                  f.getMainID()).toString();
            }
            catch (MalformedURLException ex) {
              postLink = "";
            }

            entry = new SyndEntryImpl();
            entry.setTitle(f.getTitle());
            entry.setLink(postLink);

            description = new SyndContentImpl();
            if (f.getEditType() == 0) {
              description.setType("text/plain");
            }
            else {
              description.setType("text/html");
            }
            description.setValue(BBSCSUtil.getSpeShortString(f.getDetail(), 400, ""));
            entry.setDescription(description);
            entries.add(entry);
          }

          feed.setEntries(entries);
          try {
            SyndFeedOutput output = new SyndFeedOutput();
            //String feedStr = output.outputString(feed);
            Document messagesDocument = output.outputJDom(feed);
            Format format = Format.getPrettyFormat();
            format.setOmitDeclaration(true);
            XMLOutputter xmlo = new XMLOutputter(format);
            request.setAttribute("xmlo", xmlo);
            request.setAttribute("messagesDocument", messagesDocument);
            return mapping.findForward(this.FORWARD_AJAX);
          }
          catch (Exception ex1) {
            logger.error(ex1);
          }

        }
      }
    }

    return mapping.findForward(this.FORWARD_ERROR);
  }

  public ForumService getForumService() {
    return forumService;
  }

  public SysConfig getSysConfig() {
    return sysConfig;
  }

  public BoardService getBoardService() {
    return boardService;
  }

  public void setForumService(ForumService forumService) {
    this.forumService = forumService;
  }

  public void setSysConfig(SysConfig sysConfig) {
    this.sysConfig = sysConfig;
  }

  public void setBoardService(BoardService boardService) {
    this.boardService = boardService;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -