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

📄 forumaction.java

📁 一个jsp写的bbs
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.laoer.bbscs.web.action;

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

import org.apache.commons.lang.*;
import org.apache.struts.action.*;
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.service.singleton.*;
import com.laoer.bbscs.service.web.*;
import com.laoer.bbscs.web.form.*;
import com.laoer.bbscs.web.servlet.*;
import org.apache.struts.util.LabelValueBean;

public class ForumAction
    extends BaseAction {

  private ForumService forumService;

  private BoardService boardService;

  private SysConfig sysConfig;

  private ForumHistoryService forumHistoryService;

  private CommendService commendService;

  private BoardSingleton boardSingleton;

  public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                               HttpServletResponse response) {

    ForumActionForm forumBaseForm = (ForumActionForm) form;
    long bid = forumBaseForm.getBid();
    String tagId = forumBaseForm.getTagId();
    if (StringUtils.isBlank(tagId)) {
      tagId = "0";
      forumBaseForm.setTagId("0");
    }

    UserSession us = this.getUserSession(request);
    UserCookie uc = this.getUserCookie(request, response, this.getSysConfig());

    if (StringUtils.isNotBlank(forumBaseForm.getViewMode())) {
      if (uc.getForumViewMode() != this.getViewMode(forumBaseForm.getViewMode())) {
        uc.addForumViewMode(this.getViewMode(forumBaseForm.getViewMode()), -1);
      }
    }
    if (uc.getForumViewMode() == 0) {
      forumBaseForm.setViewMode("www");
    }
    if (uc.getForumViewMode() == 1) {
      forumBaseForm.setViewMode("bbs");
    }
    if (uc.getForumViewMode() == 2) {
      forumBaseForm.setViewMode("lastre");
    }

    int isHidden = 0;
    if (us.isHaveSpecialPermission(Constant.SPERMISSION_CAN_SEE_HIDDEN_BOARD)) { //如果用户有查看隐藏版区的权限
      isHidden = -1;
    }

    //Board board = this.getBoardService().getBoardByID(bid);
    Board board = (Board) request.getAttribute(Constant.BOARD_REQUEST_KEY);
    if (board == null) {
      board = this.getBoardService().getBoardByID(bid);
    }

    if (board.getBoardType() == 0) { //作为分区封面使用
      request.setAttribute("board", board);
      /*
             List blist = this.getBoardService().findBoardsByParentID(bid, 1, isHidden,
          Constant.FIND_BOARDS_BY_ORDER);
             request.setAttribute("blist", blist);

             List bhotlist = this.getBoardService().findBoardsAllTree(bid, new ArrayList(), 1, isHidden,
          Constant.FIND_BOARDS_BY_ORDER);
             request.setAttribute("bhotlist", bhotlist);*/
      return mapping.findForward("forumCover");
    }
    else if (board.getBoardType() == 1) { //作为分区使用但不能发帖
      List blist = this.getBoardService().findBoardsInIDsInSameLevel(board.getChildIDs(), 1,
          isHidden);
      request.setAttribute("blist", blist);
      request.setAttribute("board", board);
      this.setUrlRewrite(request);
      return mapping.findForward("forumBoard");
    }
    else if (board.getBoardType() == 2) { //作为分区使用可以发帖
      ForumSearchForm forumSearchForm = new ForumSearchForm();
      forumSearchForm.setBid(bid);
      request.setAttribute("forumSearchForm", forumSearchForm);
      if (forumBaseForm.getAction().equalsIgnoreCase("index")) {
        List cblist = new ArrayList();

        cblist.add(new Long(bid));
        cblist.addAll(board.getChildIDs());
        Pages pages = new Pages();
        pages.setPage(forumBaseForm.getPage());
        pages.setPerPageNum(this.getUserForumPerNum(uc.getForumPerNum(),
            this.getSysConfig().getForumPrePage()));
        //pages.setPerPageNum(1);
        pages.setFileName(BBSCSUtil.getActionMappingURL("/forum?action=" + forumBaseForm.getAction() +
            "&bid=" + bid, request));
        if (forumBaseForm.getTotal() > 0) {
          pages.setTotalNum(forumBaseForm.getTotal());
        }
        PageList pl;

        if (uc.getForumViewMode() == 1) {
          pl = this.getForumService().findForumsInBidsAll(cblist, pages);
        }
        else if (uc.getForumViewMode() == 2) {

          pl = this.getForumService().findForumsInBidsLastRe(cblist, pages);
        }
        else {
          pl = this.getForumService().findForumsInBidsWWW(cblist, pages);
        }
        request.setAttribute("pl", pl);
        request.setAttribute("board", board);

        List bcl = this.getBoardService().findBoardsInIDsInSameLevel(board.getChildIDs(), 1,
            isHidden);
        List blist = new ArrayList();
        blist.add(board);
        blist.addAll(bcl);
        request.setAttribute("blist", blist);
        return mapping.findForward("forum");
      }
      if (forumBaseForm.getAction().equalsIgnoreCase("hot")) {
        List cblist = new ArrayList();

        cblist.add(new Long(bid));
        cblist.addAll(board.getChildIDs());
        Pages pages = new Pages();
        pages.setPage(forumBaseForm.getPage());
        pages.setPerPageNum(this.getUserForumPerNum(uc.getForumPerNum(),
            this.getSysConfig().getForumPrePage()));
        //pages.setPerPageNum(1);
        pages.setFileName(BBSCSUtil.getActionMappingURL("/forum?action=" + forumBaseForm.getAction() +
            "&bid=" + bid, request));
        if (forumBaseForm.getTotal() > 0) {
          pages.setTotalNum(forumBaseForm.getTotal());
        }
        PageList pl = this.getForumService().findForumsHotTopic(cblist, this.getSysConfig().getForumHotRes(),
            this.getSysConfig().getForumHotViews(), pages);

        request.setAttribute("pl", pl);
        request.setAttribute("board", board);

        List bcl = this.getBoardService().findBoardsInIDsInSameLevel(board.getChildIDs(), 1,
            isHidden);
        List blist = new ArrayList();
        blist.add(board);
        blist.addAll(bcl);
        request.setAttribute("blist", blist);
        return mapping.findForward("forum");
      }
      if (forumBaseForm.getAction().equalsIgnoreCase("commend")) {
        List cblist = new ArrayList();

        cblist.add(new Long(bid));
        cblist.addAll(board.getChildIDs());
        Pages pages = new Pages();
        pages.setPage(forumBaseForm.getPage());
        pages.setPerPageNum(this.getUserForumPerNum(uc.getForumPerNum(),
            this.getSysConfig().getForumPrePage()));
        //pages.setPerPageNum(1);
        pages.setFileName(BBSCSUtil.getActionMappingURL("/forum?action=" + forumBaseForm.getAction() +
            "&bid=" + bid, request));
        if (forumBaseForm.getTotal() > 0) {
          pages.setTotalNum(forumBaseForm.getTotal());
        }

        long topBid = board.getId().longValue();
        if (board.getParentIDs() != null && board.getParentIDs().size() > 0) {
          topBid = ( (Long) board.getParentIDs().get(0)).longValue();
        }

        PageList pl = this.getForumService().findForumsCommend(cblist, topBid, pages);

        request.setAttribute("pl", pl);
        request.setAttribute("board", board);

        List bcl = this.getBoardService().findBoardsInIDsInSameLevel(board.getChildIDs(), 1,
            isHidden);
        List blist = new ArrayList();
        blist.add(board);
        blist.addAll(bcl);
        request.setAttribute("blist", blist);
        return mapping.findForward("forum");

      }

      if (forumBaseForm.getAction().equalsIgnoreCase("history")) {
        List cblist = new ArrayList();

        cblist.add(new Long(bid));
        cblist.addAll(board.getChildIDs());
        Pages pages = new Pages();
        pages.setPage(forumBaseForm.getPage());
        pages.setPerPageNum(this.getUserForumPerNum(uc.getForumPerNum(),
            this.getSysConfig().getForumPrePage()));
        //pages.setPerPageNum(1);
        pages.setFileName(BBSCSUtil.getActionMappingURL("/forum?action=" + forumBaseForm.getAction() +
            "&bid=" + bid, request));
        if (forumBaseForm.getTotal() > 0) {
          pages.setTotalNum(forumBaseForm.getTotal());
        }
        PageList pl = this.getForumHistoryService().findForumHistorysInBidsWWW(cblist, pages);

        request.setAttribute("pl", pl);
        request.setAttribute("board", board);

        List bcl = this.getBoardService().findBoardsInIDsInSameLevel(board.getChildIDs(), 1,
            isHidden);
        List blist = new ArrayList();
        blist.add(board);
        blist.addAll(bcl);
        request.setAttribute("blist", blist);
        return mapping.findForward("forumHistory");

      }
    }
    else { //作为论坛使用
      ForumSearchForm forumSearchForm = new ForumSearchForm();
      forumSearchForm.setBid(bid);
      request.setAttribute("forumSearchForm", forumSearchForm);

      this.setUrlRewrite(request);
      this.setBoardSelectValues(request, isHidden);

      if (forumBaseForm.getAction().equalsIgnoreCase("index")) {
        Pages pages = new Pages();
        pages.setPage(forumBaseForm.getPage());
        pages.setPerPageNum(this.getUserForumPerNum(uc.getForumPerNum(),
            this.getSysConfig().getForumPrePage()));
        if (forumBaseForm.getTotal() > 0) {
          pages.setTotalNum(forumBaseForm.getTotal());
        }
        //pages.setPerPageNum(1);
        if (Constant.USE_URL_REWRITE) {
          pages.setUseUrlRewrite(Constant.USE_URL_REWRITE);
          pages.setFileName("forum-" + forumBaseForm.getAction() + "-" + bid + "-0-{page}-{total}.html");
        }
        else {
          pages.setFileName(BBSCSUtil.getActionMappingURL("/forum?action=" + forumBaseForm.getAction() +
              "&bid=" + bid, request));
        }

        PageList pl;
        if (tagId.equals("0")) { //版区根位置
          if (uc.getForumViewMode() == 1) {
            pl = this.getForumService().findForumsAll(bid, pages);
          }
          else if (uc.getForumViewMode() == 2) {
            pl = this.getForumService().findForumsMainLastRe(bid, pages);
          }
          else {
            pl = this.getForumService().findForumsMainWWW(bid, pages);
          }
        }
        else { //进入Tag
          if (uc.getForumViewMode() == 1) {
            pl = this.getForumService().findForumsAll(bid, tagId, pages);
          }
          else if (uc.getForumViewMode() == 2) {
            pl = this.getForumService().findForumsMainLastRe(bid, tagId, pages);
          }
          else {
            pl = this.getForumService().findForumsMainWWW(bid, tagId, pages);
          }
        }
        request.setAttribute("pl", pl);
        request.setAttribute("board", board);

        List pboards = this.getBoardService().findParentBoards(board.getParentIDs());
        request.setAttribute("pboards", pboards);

        return mapping.findForward("forum");
      }

      if (forumBaseForm.getAction().equalsIgnoreCase("hot")) {
        Pages pages = new Pages();
        pages.setPage(forumBaseForm.getPage());
        pages.setPerPageNum(this.getUserForumPerNum(uc.getForumPerNum(),
            this.getSysConfig().getForumPrePage()));
        //pages.setPerPageNum(1);
        pages.setFileName(BBSCSUtil.getActionMappingURL("/forum?action=" + forumBaseForm.getAction() +
            "&bid=" + bid, request));
        if (forumBaseForm.getTotal() > 0) {
          pages.setTotalNum(forumBaseForm.getTotal());
        }

        PageList pl = this.getForumService().findForumsHotTopic(bid, this.getSysConfig().getForumHotRes(),
            this.getSysConfig().getForumHotViews(), pages);

        request.setAttribute("pl", pl);
        request.setAttribute("board", board);

        List pboards = this.getBoardService().findParentBoards(board.getParentIDs());
        request.setAttribute("pboards", pboards);
        return mapping.findForward("forum");

⌨️ 快捷键说明

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