论坛首页 入门技术论坛

show下我的分页类

浏览 21504 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-11-18  
package com.xm.utils;

import java.util.Enumeration;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.kangsheng.cus.common.dbconn.DaoFactory;

// Referenced classes of package com.sihitech.tools:
//            DaoFactory

public class PageRoll {
	private String currentUrl;

	// private PageContext page;

	private DaoFactory pv;

	private HttpServletRequest request;

	private HttpServletResponse response;

	private String strParams;

	private String strlink;

	public PageRoll(HttpServletRequest request, HttpServletResponse response,
			DaoFactory pv) {
		currentUrl = "";
		strParams = "";
		this.request = request;
		this.response = response;
		this.pv = pv;
		currentUrl = request.getRequestURL().toString();

		strParams = GetParamsFromCurrentUrl();
	}

	private String GetParamsFromCurrentUrl() {
		String str1 = "";
		String paraValue = "";
		for (Enumeration enu = request.getParameterNames(); enu
				.hasMoreElements();) {
			String paraName = (String) enu.nextElement();
			paraValue = request.getParameter(paraName);
			if (!paraName.equals("page"))
				str1 = str1 + "&" + paraName + "=" + paraValue;
		}

		return str1;
	}

	public void Show(boolean allRecord, boolean pageInfo, boolean pageNav,
			boolean jumpPage) {
		// PrintWriter out = response.getWriter();
		// out.print("<table border=0> <tr><td>");
		String link = "";
		if (allRecord)
			link = link + ShowTotalRecord();
		if (pageInfo)
			link = link + ShowPageInfo();
		if (pageNav)
			link = link + ShowPageNav();
		if (jumpPage)
			link = link + ShowJumpPage();
		this.strlink = link;
		// out.print("</td></tr></table>");
	}

	private String ShowJumpPage() {
		// PrintWriter out = response.getWriter();
		String link = "";
		link = link
				+ "转到第<input type='text' name='page' size='1'><span>页</span><input type=button value='GO' onclick='goToPage()'>";
		link = link + "<script language='javascript'>";
		link = link + "function goToPage(){";
		link = link + "value=document.all.page.value;";
		link = link
				+ "if(value.indexOf(\".\")==-1 && value.indexOf(\"-\")==-1 && value!==\"\" && !isNaN(value) && value>0 && value<"
				+ (pv.GetTotalPage() + 1) + "){";
		link = link + "location.assign('" + currentUrl + "?page='+value+'"
				+ strParams + "')";
		link = link + "}";
		link = link + "}";
		link = link + "</script>";
		return link;
	}

	private String ShowPageInfo() {
		// PrintWriter out = response.getWriter();
		String link = "第" + pv.GetCurrentPage() + "/" + pv.GetTotalPage()
				+ "页&nbsp";
		return link;
	}

	private String ShowPageNav() {
		// PrintWriter out = response.getWriter();
		String link = "";
		if (pv.GetTotalPage() > 1)
			link = "<a href='" + currentUrl + "?page=1" + strParams
					+ "'><span>首页</span></a>&nbsp;";
		else
			link = "<span>首页&nbsp;</span>";
		//
		if (pv.GetHasPrev())
			link = link + "<a href='" + currentUrl + "?page="
					+ pv.GetPrevPageNumber() + strParams + "'><span>上页</span></a>&nbsp;";
		else
			link = link + "<span>上页&nbsp;</span>";
		//
		if (pv.GetHasNext())
			link = link + "<a href='" + currentUrl + "?page="
					+ pv.GetNextPageNumber() + strParams + "'><span>下页</span></a>&nbsp;";
		else
			link = link + "<span>下页&nbsp;</span>";
		//
		if (pv.GetTotalPage() > 1) {
			link = link + "<a href='" + currentUrl + "?page="
					+ pv.GetTotalPage() + strParams + "'><span>尾页</span></a>&nbsp;";
			return link;
		} else {
			link = link + "<span>尾页&nbsp;</span>";
			return link;
		}
	}

	private String ShowTotalRecord() {
		// PrintWriter out = response.getWriter();
		String link = "<span>共" + pv.GetTotalRecord() + "条记录&nbsp;</span>";
		return link;
	}

	public String getStrlink() {
		return strlink;
	}

	public void setStrlink(String strlink) {
		this.strlink = strlink;
	}

}


使用时,在action中建立该类的对象pr,并执行public void Show(boolean allRecord, boolean pageInfo, boolean pageNav,boolean jumpPage),将该对象放入ModelAndView,在页面使用${pr.strlink }就可以实现分页,如图


本人从事JAVA才1年,希望达到抛砖引玉的效果,大家把自己的工具拿出来show show,共同研究下,学习下
也建议版主弄一个工具包专题
  • 大小: 4 KB
   发表时间:2008-11-18  
这是webwork?? 放错地了。
0 请登录后投票
   发表时间:2008-11-18  
输出都写死了,无法定制输出内容,无法定义样式,无法国际化,GetParamsFromCurrentUrl()……总之,很差。
0 请登录后投票
   发表时间:2008-11-18  
icefire 写道
输出都写死了,无法定制输出内容,无法定义样式,无法国际化,GetParamsFromCurrentUrl()……总之,很差。

<div id="product_page">
     ${pr.strlink }
</div>
样式可以定义,
国际化也可以使用哦,只是目前我这个项目没涉及到国际化,没改
这只是我个人使用的,有很多缺点,大家讨论下嘛,
多谢楼上的意见,希望大家多多提出意见,多多完善
0 请登录后投票
   发表时间:2008-11-18  
在90%的项目里,国际化是假想需求.
0 请登录后投票
   发表时间:2008-11-18  
怎么能把显示的数据放在类里面。太离谱了。
居然在方法里面拼html。。。丑陋。。丑陋到了极点。。
1 请登录后投票
   发表时间:2008-11-18  
有啥好show的?写的这么烂
0 请登录后投票
   发表时间:2008-11-18  
不加样式是比较难看
不过比较实用,至少我开发的时候可以一劳永逸.
楼上的靓仔,烂在哪里,说说,俺改改
0 请登录后投票
   发表时间:2008-11-18  
很老的一个例子了!
0 请登录后投票
   发表时间:2008-11-18  
不要总是批评人家写的程序不好,如果你们觉得自己写的水平高,也拿出来让大家学习学习啊。
2 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics