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

📄 forumtree.java

📁 一个不错的bbs论坛系统.对初学者很有帮助
💻 JAVA
字号:
package com.yhbbs.comm.tag;

import java.util.HashMap;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

import org.apache.log4j.Logger;

import com.yhbbs.article.biz.ArticleBiz;
import com.yhbbs.article.itface.Article;
import com.yhbbs.utils.ReqUtils;
import com.yhbbs.utils.StringUtils;

/**
 * <p>Title: 论坛帖子回复列表</p>
 * <p>Company: www.yyhweb.com</p>
 * <br><b>CopyRight: yyhweb[由由华网]</b>
 * @author stephen
 * @version YHBBS-2.0
 */
public class ForumTree extends TagSupport{
	
	private static final long serialVersionUID = 1L;

	private static Logger bbslog = Logger.getLogger(ForumTree.class);

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

	public int doEndTag() throws JspException {
	    try{  
	    	 HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
	    	 StringBuffer sb = new StringBuffer();
	    	 int classId = ReqUtils.getInt(request,"cId");
	    	 int forumId = ReqUtils.getInt(request,"fId");
	    	 int artId = ReqUtils.getInt(request,"aId");
	    	 int curPage = ReqUtils.getInt(request,"curPage");
	    	 int artreplay = ArticleBiz.getArtReplayC(artId);
	    	 int pagesize = 12;// 这个地方的值必须要和每页回复帖子显示数目一致
	    	 String link2 = "Article.htm?cId="+classId+"&fId=" + forumId+"&aId="+artId;
	         int start = 0;
	         if(curPage>1){
		 		start = (curPage-1)*pagesize;
		 		link2 = link2+"&curPage="+curPage;
	         }
	         int flr = pagesize*(curPage-1)+1;
    	 	 HashMap<String,Integer> artrp = new HashMap<String,Integer>();
    	 	 artrp.put("artId",artId);
    	 	 artrp.put("start",start);
    	 	 artrp.put("end",pagesize);
    	 	 List replays = ArticleBiz.getArtReplay(artrp);
    	 	 request.setAttribute("replist", replays);
    	 	 Article repart = null;
 			 sb.append("<table width='100%' cellSpacing=0 cellPadding=0>");
 			 for(int i=0;i<replays.size();i++){
 				repart = (Article) replays.get(i);
 				String content = StringUtils.strEncode(repart.getContent().getContent());
 				if(content.length()>40)
 					content = content.substring(0,40);
 				// 保持截取的内容在一行显示
 				content = content.replaceAll("<br>", "");
 				content = content.replaceAll("\n", "");
	    	 sb.append("<tr height='22px'><td>&nbsp;&nbsp;&nbsp;<img src='webapp/images/class1.gif'>&nbsp;");
	    	 sb.append("<a href='"+link2+"#"+repart.getId()+"'>");
	    	 sb.append(content);
	    	 sb.append("</a>&nbsp;--&nbsp;<a href='User.htm?uId="+repart.getUserid()+"'>");
	    	 sb.append(repart.getUser());
	    	 sb.append("</a>&nbsp;&nbsp;&nbsp;["+repart.getPosttime()+"]");
	    	 sb.append("</td></tr>");
	    	 }
 			 if(artreplay>pagesize){
	 			 sb.append("<tr><td>");
	 			 sb.append(getPageInfo(artreplay,pagesize,curPage,classId,forumId,artId));
	 			 sb.append("</td></tr>");
 			 }
 			sb.append("</table>");
 			request.setAttribute("artId", artId);
 			request.setAttribute("htmlInfo", sb.toString());
	    	 JspWriter out = pageContext.getOut();
	         
	         out.println(sb);
	         sb = null;
	     }catch(Exception e){
	            bbslog.error("ForumTree tag's doEndTag error!");
	     }
	     return 6;
	 }
	private String getPageInfo(int artTotal,int pageSize,int curPage,int classId,int forumId,int artId){
		int pagetotal = 0;
		pagetotal = artTotal%pageSize==0?artTotal/pageSize:artTotal/pageSize+1;
		if(pagetotal==0){
			pagetotal=1;
		}
		if(curPage<1){
			curPage=1;
		}else if(curPage>pagetotal){
				curPage=pagetotal;
		}
		
		StringBuffer sb = new StringBuffer();
		String pageInfo = "";
		if(pagetotal>1){
		sb.append("<table class='tab' width='100%' height='100%' cellSpacing=0 cellPadding=0>");
		sb.append("<tr><td>&nbsp;&nbsp;共<b>");
		sb.append(pagetotal);
		sb.append("</b>页&nbsp;&nbsp;<b>");
		sb.append(artTotal);
		sb.append("</b>个记录&nbsp;&nbsp;当前第<b>");
		sb.append(curPage);
		sb.append("</b>页&nbsp;&nbsp;&nbsp;");
		sb.append("<img src='webapp/images/first.gif' border=0 alt='首页' style='cursor:hand;' ");
		sb.append("onclick='ArtReplays("+classId+","+forumId+","+artId+",1)'>");
		int prePage=curPage>=2?curPage-1:curPage;
		sb.append("<img src='webapp/images/previous.gif' border=0 alt='上一页' style='cursor:hand;' ");
		sb.append("onclick='ArtReplays("+classId+","+forumId+","+artId+","+prePage+")'>");
		sb.append("&nbsp;&nbsp;[");
		int pagebegin = 1;
		int pageend = pagetotal;
		if(curPage <= 5 && pagetotal - curPage > 5){
			pageend = pagetotal < 10 ? pagetotal : 10;
		}else
	        if(curPage > 5 && pagetotal - curPage > 5) {
		        	pagebegin = curPage - 4;
		        	pageend = curPage + 5;
		        } else{
			        if(curPage > 5 && pagetotal - curPage <= 5)
			        	pagebegin = pagetotal < 10 ? 1 : pagetotal - 9;
		        }
		 for(int i = pagebegin; i <= pageend; i++){
             if(i == curPage){
                 sb.append("&nbsp;<b>"+i+"</b>");
             } else{
                 sb.append("&nbsp;<span style='cursor:hand;' onclick='ArtReplays("+classId+","+forumId+","+artId+","+i+")'>");
                 sb.append(i);
                 sb.append("</span>");
              }
		 }
		curPage = curPage<=pagetotal-1?curPage+1:pagetotal;
		sb.append("]&nbsp;&nbsp;");
		sb.append("<img src='webapp/images/next.gif' border=0 alt='下一页' style='cursor:hand;' ");
		sb.append("onclick='ArtReplays("+classId+","+forumId+","+artId+","+curPage+")'>");
		sb.append("<img src='webapp/images/last.gif' border=0 alt='末页' style='cursor:hand;' ");
		sb.append("onclick='ArtReplays("+classId+","+forumId+","+artId+","+pagetotal+")'>");
		sb.append("</td></tr>");
		sb.append("</table>");
		}else{
			sb.append("&nbsp;&nbsp;共<b>");
			sb.append(pagetotal);
			sb.append("</b>页&nbsp;&nbsp;<b>");
			sb.append(artTotal);
			sb.append("</b>个记录&nbsp;&nbsp;");
		}
		pageInfo = sb.toString();
		sb = null;
		return pageInfo;
	}
}

⌨️ 快捷键说明

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