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

📄 forumhistorytag.java

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

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

import org.apache.commons.io.*;
import org.apache.commons.lang.*;
import org.apache.struts.taglib.*;
import org.springframework.web.context.*;
import org.springframework.web.context.support.*;
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.servlet.*;
import freemarker.template.Configuration;
import java.io.*;
import freemarker.template.Template;
import freemarker.template.*;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.logging.Log;

/**
 * <p>Title: TianyiBBS</p>
 *
 * <p>Description: BBSCS</p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: Laoer.com</p>
 *
 * @author Laoer
 * @version 7.0
 */
public class ForumHistoryTag
    extends TagSupport {

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

  protected String name = "";

  protected String property = null;

  protected String scope = null;

  protected String type = "";

  protected String boardObjName = "board";

  protected String itemClass = "font2";

  protected String forumCurrentPageName = "pagesObj";

  protected String forumCurrentPageProperty = null;

  protected String inPagesName = "inpages";

  protected String indexName = "index";

  protected String topicTotalNumName = "totalnum";

  protected String forumCurrentActionName = "forumActionForm";

  protected String forumCurrentActionProperty = "action";

  public ForumHistoryTag() {
  }

  public int doStartTag() throws JspException {
    return (SKIP_BODY);
  }

  public int doEndTag() throws JspException {
    HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
    HttpServletResponse response = (HttpServletResponse) pageContext.getResponse();

    WebApplicationContext wc = WebApplicationContextUtils.getWebApplicationContext(this.
        pageContext.getServletContext());
    SysConfig sysConfig = (SysConfig) wc.getBean("sysConfig");
    StringBuffer sb = new StringBuffer();

    if (type.equalsIgnoreCase("floor")) {
      int index = 0;
      Object indexObj = TagUtils.getInstance().lookup(pageContext, indexName, null, null);
      if (indexObj != null) {
        index = ( (Integer) indexObj).intValue();
      }
      int inpages = 1;
      Object inpagesObj = TagUtils.getInstance().lookup(pageContext, inPagesName, null, null);
      if (inpagesObj != null) {
        inpages = ( (Integer) inpagesObj).intValue();
      }
      UserCookie uc = new UserCookie(request, response, sysConfig);
      int perNum = this.getUserPostPerNum(uc.getPostPerNum(), sysConfig.getPostPerPage());
      int floor = (inpages - 1) * perNum + index;
      if (floor == 0) {
        sb.append(Constant.MESSAGE.getMessage(request.getLocale(), "forum.floor0"));
      }
      else {
        sb.append(Constant.MESSAGE.getMessage(request.getLocale(), "forum.floor1",
                                              String.valueOf(floor)));
      }
      TagUtils.getInstance().write(pageContext, sb.toString());
      return (SKIP_BODY);
    }

    Object value = TagUtils.getInstance().lookup(pageContext, name, property, scope);

    if (value == null) {
      sb.append("");
      TagUtils.getInstance().write(pageContext, sb.toString());
      return (SKIP_BODY);
    }
    ForumHistory f = (ForumHistory) value;

    if (type.equalsIgnoreCase("face")) {

      if (f.getFace() == 0) {
        sb.append("<img src=\"");
        sb.append(sysConfig.getPostDefFaceImg());
        sb.append("\" align=\"absmiddle\"/>");
      }
      else {
        sb.append("<img src=\"images/");
        sb.append(f.getFace());
        sb.append(".gif\" align=\"absmiddle\"/>");
      }
      TagUtils.getInstance().write(pageContext, sb.toString());
      return (SKIP_BODY);
    }
    if (type.equalsIgnoreCase("title")) {
      Object boardObj = TagUtils.getInstance().lookup(pageContext, boardObjName, null, null);
      int boardType = 3;
      Board board = (Board) boardObj;
      boardType = board.getBoardType();
      Object forumCurrentPageObj = TagUtils.getInstance().lookup(pageContext, forumCurrentPageName,
          forumCurrentPageProperty, null);
      int fcpage = 1;
      if (forumCurrentPageObj != null) {
        fcpage = ( (Integer) forumCurrentPageObj).intValue();
      }

      String fcaction = "index";
      Object fcactionObj = TagUtils.getInstance().lookup(pageContext, forumCurrentActionName,
          forumCurrentActionProperty, null);
      if (fcactionObj != null) {
        fcaction = (String) fcactionObj;
      }

      /*
             if (boardObj != null) {
        board = (Board) boardObj;
        boardType = board.getBoardType();
             }*/
      if (boardType == 2) {
        if (board.getId().longValue() != f.getBoardID()) {
          sb.append("[");
          sb.append(f.getBoardName());
          sb.append("] ");
        }
      }

      if (!f.getTagID().equals("0")) {
        sb.append("[");
        sb.append(f.getTagName());
        sb.append("] ");
      }

      if (f.getPostType() != 0) {
        if (f.getPostType() == 1) {
          sb.append(Constant.MESSAGE.getMessage(request.getLocale(), "post.firstpus"));
          sb.append(" ");
          //sb.append("[原创] ");
        }
        if (f.getPostType() == 2) {
          sb.append(Constant.MESSAGE.getMessage(request.getLocale(), "post.fw"));
          sb.append(" ");
          //sb.append("[转载] ");
        }
      }
      if (f.getIsVote() == 1) {
        //sb.append("[投票] ");
        sb.append(Constant.MESSAGE.getMessage(request.getLocale(), "post.vote.title"));
        sb.append(" ");
      }
      if (f.getTitleColor() != 0) {
        sb.append("<a href=\"");
        sb.append(BBSCSUtil.getActionMappingURL("/readHistory?action=topic&id=" + f.getMainID() + "&bid=" +
                                                f.getBoardID() + "&fcpage=" + fcpage + "&fcaction=" +
                                                fcaction, request));
        sb.append("\">");
        sb.append("<font color=\"");
        sb.append(Constant.TITLECOLOR[f.getTitleColor()]);
        sb.append("\"><strong>");
        sb.append(TagUtils.getInstance().filter(f.getTitle()));
        sb.append("</strong></font>");
        sb.append("</a>");
      }
      else {
        sb.append("<a href=\"");
        sb.append(BBSCSUtil.getActionMappingURL("/readHistory?action=topic&id=" + f.getMainID() + "&bid=" +
                                                f.getBoardID() + "&fcpage=" + fcpage + "&fcaction=" +
                                                fcaction, request));
        sb.append("\">");
        sb.append(TagUtils.getInstance().filter(f.getTitle()));
        sb.append("</a>");
      }
      TagUtils.getInstance().write(pageContext, sb.toString());
      return (SKIP_BODY);
    }
    if (type.equalsIgnoreCase("titleitem")) {
      if (sysConfig.getUseLinkToPages() == 1) {
        UserCookie uc = new UserCookie(request, response, sysConfig);
        Object forumCurrentPageObj = TagUtils.getInstance().lookup(pageContext,
            forumCurrentPageName, forumCurrentPageProperty, null);
        int fcpage = 1;
        if (forumCurrentPageObj != null) {
          fcpage = ( (Integer) forumCurrentPageObj).intValue();
        }

        int totalNum = f.getReNum() + 1;
        int perNum = this.getUserPostPerNum(uc.getPostPerNum(), sysConfig.getPostPerPage());

        if (totalNum > perNum) {
          sb.append(" [<img src='images/multipage.gif' align='absmiddle'>");
          int totalPages = (int) Math.ceil( (totalNum + perNum - 1) / perNum);
          String fileName = BBSCSUtil.getActionMappingURL("/readHistory?action=topic&id=" + f.getId() +
              "&bid=" + f.getBoardID() + "&fcpage=" + fcpage + "&inpages=", request);
          for (int i = 1; i <= totalPages; i++) {
            if (i > sysConfig.getMaxMultiPage()) {
              sb.append(" ...<a href=\"");
              sb.append(fileName);
              sb.append(totalPages);
              sb.append("\">");
              sb.append(Constant.MESSAGE.getMessage(request.getLocale(), "post.endpage"));
              sb.append("</a>");
              break;
            }
            sb.append(" <a href=\"");
            sb.append(fileName);
            sb.append(i);
            sb.append("\">");
            sb.append(i);
            sb.append("</a>");
          }
          sb.append("] ");
        }
      }

      sb.append("<a href=\"javascript:;\" onclick=\"viewSummary('");
      sb.append(f.getBoardID());
      sb.append("','");
      sb.append(f.getId());
      sb.append("');\">");
      sb.append("<img src=\"images/summary0.gif\" alt=\"");
      sb.append(Constant.MESSAGE.getMessage(request.getLocale(), "post.summary"));
      sb.append("\" border=\"0\" align=\"absmiddle\"/>");
      sb.append("</a>");

      sb.append("<span class=\"");
      sb.append(this.getItemClass());
      sb.append("\">");

      if (f.getHaveAttachFile() != 0 && f.getAttachFileName() != null &&
          !f.getAttachFileName().isEmpty()) {
        sb.append(" [<img src=\"images/icons/");
        sb.append(BBSCSUtil.getFileTypeIcon(FilenameUtils.getExtension( (String) (f.
            getAttachFileName().get(0)))));
        sb.append("\" align=\"absmiddle\"/> ");
        sb.append(Constant.MESSAGE.getMessage(request.getLocale(), "post.attachfile"));
        sb.append("]");
      }

      if (f.getIsTop() != 0) {
        sb.append(" ");
        sb.append(Constant.MESSAGE.getMessage(request.getLocale(), "post.istop"));
      }
      if (f.getIsLock() != 0) {
        sb.append(" ");
        sb.append(Constant.MESSAGE.getMessage(request.getLocale(), "post.islock"));
      }
      if (f.getElite() != 0) {
        sb.append(" ");
        sb.append(Constant.MESSAGE.getMessage(request.getLocale(), "post.elite"));
      }
      if (f.getCommend() != 0) {
        sb.append(" ");
        sb.append(Constant.MESSAGE.getMessage(request.getLocale(), "post.commend"));
      }
      sb.append("</span>");
      TagUtils.getInstance().write(pageContext, sb.toString());
      return (SKIP_BODY);
    }
    if (type.equalsIgnoreCase("click")) {
      if (f.getClick() >= sysConfig.getForumHotViews()) {
        sb.append("<span class=\"");
        sb.append(this.getItemClass());
        sb.append("\">");
        sb.append(f.getClick());
        sb.append("</span>");
      }
      else {
        sb.append(f.getClick());
      }
      TagUtils.getInstance().write(pageContext, sb.toString());
      return (SKIP_BODY);
    }
    if (type.equalsIgnoreCase("renum")) {
      sb.append("[");
      if (f.getReNum() > 0) {
        if (f.getReNum() >= sysConfig.getForumHotRes()) {
          sb.append("<span class=\"");
          sb.append(this.getItemClass());

⌨️ 快捷键说明

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