`
cheng330301560
  • 浏览: 178883 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

jsp制作分页效果(假分页)

 
阅读更多

 

上面就是我制作的分页效果

 

(1)首先定义一个分页功能的类:

public class PageVo {

	/**保存从数据库中读取出的全部数据*/
	private List list;
	/**保存每一页的信息*/
	private List pageList=new ArrayList();
	/**保存当前页*/
	private List pageNow;
	/**当前的页数*/
	private int pageNo=1;
	/**一共有多少页*/
	private int pageMax;
	/**每一页显示多少条记录*/
	private int pageRowNum;
	public PageVo(List list,int pageRowNum)
	{
		this.list=list;//获取到数据库的全部信息
		this.pageRowNum=pageRowNum;//获取每一页要显示多少条记录
		splitpage();//计算分页算法
		getNowList();//取出每一页的数据
	}
	/**
	 * 分页算法,得出最大的页数以及每一页存放的数据
	 */
	public void splitpage()
	{
		//得出一共有多少条记录
		int size=list.size();
		//这个if语句主要是判断取整的问题,如果总得条数除以每一页的显示的条数为0的话
		//那么一共可以分为pageMax页,如果不为0,那么要记得加上1,
		//不然的话就显示不了最后一页的信息了
		if(size%pageRowNum==0)
		{
			pageMax=size/pageRowNum;
		}
		else
		{
			pageMax=size/pageRowNum+1;
		}
		int index=0;
		//这里是先取出一页中的要显示的条数放到一个List集合中
		//然后再使用List保存每一页
		for(int i=0;i<pageMax;i++)
		{
			ArrayList tlist=new ArrayList();
			//这个循环是保存每一页的信息
			for(int j=0;j<pageRowNum;j++)
			{
				if(index<size)
				{
					tlist.add(list.get(index++));
				}
				else
				{
					break;
				}
			}
			//将每一页的信息保存到List集合中
			pageList.add(tlist);
		}
	}
	/**
	 * 取出每一页的数据
	 */
	public void getNowList()
	{
		int n=pageNo-1;
		this.pageNow=(ArrayList)pageList.get(n);
	}
	/**
	 * 第一页
	 */
	public void setFirstPage()
	{
		this.pageNo=1;
		getNowList();
	}
	/**
	 * 前一页
	 */
	public void setPrivousPage()
	{
		if(this.pageNo>1)
		{
			this.pageNo--;
		}
		getNowList();
	}
	/**
	 * 下一页
	 */
	public void setNextPage()
	{
		if(this.pageNo<this.pageMax)
		{
			this.pageNo++;
		}
		getNowList();
	}
	/**
	 * 最后一页
	 */
	public void setLastPage()
	{
		this.pageNo=this.pageMax;
		getNowList();
	}
	
	public List getList() {
		return list;
	}
	public void setList(List list) {
		this.list = list;
	}
	public List getPageList() {
		return pageList;
	}
	public void setPageList(List pageList) {
		this.pageList = pageList;
	}
	public List getPageNow() {
		return pageNow;
	}
	public void setPageNow(List pageNow) {
		this.pageNow = pageNow;
	}
	public int getPageNo() {
		return pageNo;
	}
	public void setPageNo(int pageNo) {
		this.pageNo = pageNo;
		getNowList();
	}
	public int getPageMax() {
		return pageMax;
	}
	public void setPageMax(int pageMax) {
		this.pageMax = pageMax;
	}
	public int getPageRowNum() {
		return pageRowNum;
	}
	public void setPageRowNum(int pageRowNum) {
		this.pageRowNum = pageRowNum;
	}
}

  (2)定义好分页功能后,在servlet或我们的struts中分页的过程

	/**
	 * 开始进行分页
	 * @param a表示已经从数据库中取出了全部的信息
	 * @param pageRowNum每一页要显示的多少条记录
	 */
	@SuppressWarnings("unchecked")
	public void beginpage(List<Article> a,int pageRowNum)
	{
		PageVo pagevo=new PageVo(a,pageRowNum);
		//得到当前页
		int currentpage=pagevo.getPageNo();
		//得到总共的页数
		int allpage=pagevo.getPageMax();
		//得到第一页的信息
		List<Article> articles=pagevo.getPageNow();
               //记住这里要用session绑定相应的信息
                session.setAttribute("currentpage", currentpage);
		session.setAttribute("allpage", allpage);
		session.setAttribute("articles", articles);
		session.setAttribute("pagevo", pagevo);
	}
 

(3)在JSP页面中添加如下的功能

<%

      //currentpage就是当前页,allPages表示的就是一共有多少页。这些在后面都会用到
       int currentPage = Integer.parseInt(session.getAttribute(
			"currentpage").toString());
	int allPages = Integer.parseInt(session.getAttribute("allpage")
			.toString());
%>

 (4)一般我们在显示一页信息之后加上如上图所示的分页图标的既在

<c:forEach items="${articles}" var="article">

                                :

                                :

</c:forEach>

记得articles吧,它是我们第二步使用session绑定的一个articles。

我们在</c:forEach>后面加上分页数字

  
//<c:if test="${allpage>1}">allpage是表示一共分几页,这里主要表示是否达到分页,
//class="viciao"是一个CSS样式效果主要用在分页显示效果上面
 <c:if test="${allpage>1}">
 <div align="right" class="viciao">
     <a href="indexmanager!page.action?type=first&id=1">&nbsp; 首页&nbsp;</a>
      <a href="indexmanager!page.action?type=prvious&id=1">&nbsp; < Prev&nbsp;</a>
      <%
			  for (int i = currentPage - 2; i <= currentPage + 2 && i <= allPages; i++) {
											if (currentPage == i) {
		%>
			<span class="current"><%=i%></span>
			<%
				} else if (i > 0) {
				%>
				<a href="indexmanager!page.action?type=<%=i %>&id=1"><%=i%></a>
				<%
					}
					}
					%>
      <a href="indexmanager!page.action?type=next&id=1">&nbsp;Next  >&nbsp;</a>
       <a href="indexmanager!page.action?type=last&id=1">&nbsp;尾页&nbsp;</a>     
      </div>
      </c:if>
  </c:if>

 在上面中我们还看到有indexmanager!page.action页面跳转,那么看看page这个函数的功能

 

	public String page()
	{
		PageVo pagevo=(PageVo) session.getAttribute("pagevo");
		//获取分页的类型
		String type=request.getParameter("type");
		if("prvious".equals(type))
		{
			pagevo.setPrivousPage();
		}
		else if("next".equals(type))
		{
			pagevo.setNextPage();
		}
		else if("first".equals(type))
		{
			pagevo.setFirstPage();
		}
		else if("last".equals(type))
		{
			pagevo.setLastPage();
		}
		else
		{
			int pageNo=Integer.parseInt(type);
			pagevo.setPageNo(pageNo);
		}
		List<Article> articles=pagevo.getPageNow();
		//得到当前页
		int currentpage=pagevo.getPageNo();
		session.setAttribute("articles", articles);
		session.setAttribute("pagevo", pagevo);
		session.setAttribute("currentpage", currentpage);
		return "editarticle";
	}

 page函数主要是根据我们点击的分页数,就是上面显示的1,2,3等等或上一页、下一页、首页、和尾页来获取相应的该也得信息,然后对它进行重新绑定。

 

最后我这里提供一个分页显示的CSS样式,记住这个要在jsp中引入该css样式,而且在第四步中使用了

<div align="right" class="viciao">

中的viciao就是该css样式,当然在这个样式中还有很多中样式类型

  • css.rar (407 Bytes)
  • 下载次数: 63
分享到:
评论

相关推荐

    jsp假分页技术jsp假分页

    然而,"假分页"是相对于真分页的一种简单实现方式,它并不真正地在数据库层面上进行分页,而是先将所有数据一次性加载到内存中,然后通过程序逻辑来模拟分页效果。 以下是一个简单的JSP假分页实现示例: 1. **假...

    JSP实现真分页和假分页

    本篇文章将深入探讨JSP实现的真分页和假分页的区别、原理以及具体实现方法。 首先,我们需要理解什么是真分页和假分页。假分页,也称为无状态分页,主要通过在客户端存储和处理分页信息,如当前页数和每页显示的...

    java实现分页 jsp分页 分页

    java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页

    使用jsp制作分页效果

    ### 使用JSP实现分页效果的关键技术点 #### 一、理解分页的基本概念与应用场景 分页是在处理大量数据时的一种常见展示方式,通过将数据分成若干个页面来逐页展示,不仅可以优化用户体验,还能有效提升系统的响应...

    java 真假分页,jsp servlet 实现的真分页与假分页

    本篇文章将深入探讨"真分页"和"假分页"的概念,并结合JSP和Servlet来实现这两种分页方法。 ### 真分页与假分页概念 **假分页**,又称为内存分页,其主要特点是服务器一次性加载所有数据到内存中,然后根据用户请求...

    JSP中分页效果实现步骤

    JSP中分页效果实现步骤 JSP中分页效果实现步骤是指在JSP页面中实现数据的分页显示,通过限制每页显示的记录数和当前页码来实现数据的分页效果。下面是JSP中分页效果实现步骤的详细步骤: 步骤1:定义DAO方法 在...

    使用JSP实现查询分页

    本文将深入探讨如何使用JSP(Java Server Pages)来实现查询分页,这是一项在网页开发中频繁遇到且必须掌握的技术。 ### 分页技术的重要性 分页技术主要解决的是当数据量庞大时,一次性加载所有数据到页面会导致...

    jsp 分页jsp 分页

    jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页...

    jsp分页效果(web)

    二、JSP分页步骤 1. **计算总页数**:首先,我们需要知道所有数据的数量,然后根据每页显示的数据量来计算总页数。这可以通过执行SQL查询获取数据总数,然后用总数除以每页数量得到。 2. **接收用户请求**:用户...

    使用JSP开发技术实现分页效果

    ### JSP分页实现 #### 初始化分页参数 在给定的代码中,首先初始化了分页参数`p`,默认值为1,代表当前页面是第一页。然后,通过`request.getParameter("page")`方法获取URL中传入的页面参数,如果存在,则将其...

    jsp的假分页代码2

    jsp假分页代码,让你更好的把JSP读取数据库然后分页

    Java Ajax分页,jsp ajax分页

    总结来说,实现Java AJAX分页和JSP分页涉及前后端的协作。前端通过AJAX与后端通信,后端处理请求并从数据库获取数据,然后将数据返回给前端,前端再更新页面内容。这个过程提升了用户体验,使得浏览大数据集变得更加...

    JSP分页技术 假分页技术

    **JSP分页技术**是Web开发中常用的一种技术,用于在网页...总的来说,JSP分页技术,特别是假分页技术,是Web开发中提高性能和用户体验的重要手段。理解并掌握这部分内容,对于提升Web应用的效率和质量具有积极的意义。

    1-JSP+JDBC_假分页

    在本例中,我们探讨的是使用JSP(JavaServer Pages)和JDBC(Java Database Connectivity)实现的一种“假分页”方法。假分页指的是在服务器端完全获取所有数据,然后在内存中进行处理,只显示用户当前请求的页面...

    绝对精简的JSP假分页

    绝对精简的JSP分页,经过本人亲测,绝对好用,方便不想复杂分页的朋友使用。 此分页方法是先将要分页的List对象放在Session中, 然后在页面中,用for循环取出数据。

    JAVA JSP 简单分页插件

    分页插件分页插件分页插件JAVA JSP 简单分页插件JAVA JSP 简单分页插件JAVA JSP 简单分页插件JAVA JSP 简单分页插件JAVA JSP 简单分页插件JAVA JSP 简单分页插件JAVA JSP 简单分页插件JAVA JSP 简单分页插件JAVA JSP...

    JSP分页技术,非常好的的学习Jsp分页技术的教程,适合初学者

    ### JSP分页技术详解:初学者的完美指南 #### 引言 在现代Web开发中,数据展示的效率和用户体验至关重要。对于大型数据库或数据集的处理,一次性加载所有数据不仅消耗大量资源,还可能导致页面加载缓慢,严重影响...

    jsp 分页显示 标签 仿百度那样的分页效果

    标题中的“jsp分页显示标签”指的是JSP中可以使用的特定标签库,如JSTL(JavaServer Pages Standard Tag Library)或自定义标签,来简化分页逻辑的实现。JSTL的`&lt;c:forEach&gt;`标签可以用于循环输出分页按钮,而`...

    jsp数据分页源代码

    本资源提供了一种基于JSP的分页解决方案,利用`&lt;jsp:include&gt;`标签来实现,同时兼容Oracle、SQL Server和MySQL等主流数据库。下面我们将详细探讨这个知识点。 1. **JSP(JavaServer Pages)**: JSP是Java的一个子...

Global site tag (gtag.js) - Google Analytics