简单分页

本文介绍了一个Java项目中分页功能的具体实现方式,包括通过IndexUtils类获取不同类型的分页数据,如会刊信息和会员信息,并计算总页数。同时展示了如何在前端页面通过JavaScript函数实现翻页操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.相关java方法:


package com.topsoft.cya.web.bean;

import java.util.List;
import java.util.Map;

import javax.servlet.ServletContext;

import org.springframework.web.context.support.WebApplicationContextUtils;

import com.topsoft.cya.domain.entity.Info;
import com.topsoft.cya.domain.entity.Member;
import com.topsoft.cya.domain.entity.WebInfo;
import com.topsoft.cya.domain.services.IndexDomain;


/**
 * 前台页面信息展示
 * @author tangyangzhuang
 *
 */
public class IndexUtils {

 private static IndexUtils instance;
 IndexDomain indexDomain=null;
 
 private IndexUtils()
 {
  
 }

 public static IndexUtils getInstance(ServletContext sc) {
  if (instance == null) {
   instance = new IndexUtils();
   // 初始化map
   instance.init(sc);
  }
  return instance;
 }
 
 /**
  * 首页信息
  * @return
  */
 public Map<String,Object> getIndexInfo()
 {
  return indexDomain.getIndexInfo();
 }
 
 /**
  * 关于我们栏目信息
  * @param code
  * @return
  */
 public WebInfo getWebInfoByHql(String code)
 {
  return indexDomain.getWebInfoByHql(code);
 }

 /**
  * 会刊信息列表
  * @param tmp
  * @return
  */
 public List<Info> getHuiKanInfo(int tmp)
 {
  return indexDomain.getHuiKanInfo(tmp);
 }
 
 /**
  * 获取会刊记录总数
  * @return
  */
 public int getHuiKanInfoSize()
 {
  return indexDomain.getSize("from Info i where i.departcode='170001' ");
 }
 
 /**
  * 获取会员信息
  * @param tmp
  * @return
  */
 public List<Member> getSelectMember(int tmp)
 {
  return indexDomain.getSelectMember(tmp);
 }
 
 /**
  * 获取会员记录数
  * @return
  */
 public int getMemberInfoSize()
 {
  return indexDomain.getSize("from Member");
 }
 
 /**
  * 查找信息
  * @param id
  * @return
  */
 public Info findInfoById(String id)
 {
  return indexDomain.findInfoById(Long.valueOf(id));
 }
 
 
 
 /**
  * 计算总页数
  * @param maxRowCount 记录总数
  * @param rowsPerPage   每页显示的记录数
  * @return
  */
 public int getPageSize(int maxRowCount,int rowsPerPage)
 {
  int maxPage=0;
  if(maxRowCount%rowsPerPage==0)
  {
   maxPage=maxRowCount/rowsPerPage;
   
  }
  else
  {
   maxPage=maxRowCount/rowsPerPage+1;
  }
  return maxPage;
 }
 
 
 
 @SuppressWarnings("unchecked")
 private void init(ServletContext sc) {
   indexDomain = (IndexDomain) WebApplicationContextUtils
  .getWebApplicationContext(sc).getBean("indexDomain");
 }
}


2:页面上要有这些数据
<%
 int pg =1 ;
 try{
    pg= Integer.valueOf(new String(request.getParameter("pg").getBytes("ISO-8859-  1"),"UTF-8"));
 }
 catch(Exception e){
   pg=1;
 }
       IndexUtils index = IndexUtils.getInstance(application);
       List<Info> list = (List<Info>)index.getHuiKanInfo(pg);
       int pageCount = index.getHuiKanInfoSize();   //获取记录总数
       int pageSize = index.getPageSize(pageCount,10); //获取总页数

%>

 

3.js文件如下:

 

//点数字的时候调用的函数
function gotoPath(path)
{
 window.location=path;
}

//跳到上一页的操作
function gotoPathImgUp(path,pg)
{
 if(pg==1)
    {
  
  return ;
 }
 window.location=path;
}

//跳到下一页的操作
function gotoPathImgDown(path,pg,pageSize)
{
 if(pg==pageSize)
    {
  
  return ;
 }
 window.location=path;
}

// 下拉列表的操作
function gotoPage(path,obj)
{
 window.location=path+obj.value;
}


4.相关html内容:
  <tr>
                    <td width="19" height="19" align="middle"><img height="18"
                        src="images/page_6.jpg" width="14"/>
                    </td>
                    <td width="136" align="middle" class="neirong3">第<%=pg%>页 共<%=pageCount%>条/<%=pageSize%>页 </td>
                    <td width="19"></td>
                   
                    <td width="21" align="right">
                     <a href="javascript:gotoPathImgUp('<%=path%>/web/huikan.jsp?pg=<%=pg-1%>',<%=pg%>);"><img
                        src="images/page_8.jpg" width="16" height="18" border="0" /></a>
                    </td>
                   
                    <td width="198" align="center" class="neirong3">
                    <span class="lianjie">
         <% if(pg==1){
               %>
    首页 <span class="STYLE9">|</span> 上一页
        <%}
        else{
        %>
    <a href="javascript:gotoPath('<%=path%>/web/huikan.jsp?pg=1');" class="lianjie">首页</a>
    <span class="STYLE9"> | </span>
    <a href="javascript:gotoPath('<%=path%>/web/huikan.jsp?pg=<%=pg-1%>');" class="lianjie">上一页</a>
     <span class="STYLE9"> | </span><%
     }
         %>
                     <% if(pg==pageSize){
        %>下一页 <span class="STYLE9"> | </span> 尾页
     <%}else{
        %>
    <a href="javascript:gotoPath('<%=path%>/web/huikan.jsp?pg=<%=pg+1%>');" class="lianjie">下一页</a>
    <span class="STYLE9"> |  </span>
    <a href="javascript:gotoPath('<%=path%>/web/huikan.jsp?pg=<%=pageSize%>');" class="lianjie">尾页</a>
    </span><%}
    %> 
                    </td>
                   
                    <td width="41" align="left">
                     <a href="javascript:gotoPathImgDown('<%=path%>/web/huikan.jsp?pg=<%=pg+1%>',<%=pg%>,<%=pageSize%   >);"><img
                        src="images/page_10.jpg" width="16" height="18" border="0" /></a>
                       
                      </td>
                    <td width="1"></td>
                    <td width="71">
                    <select name="menu1" onchange="gotoPage('<%=path%>/web/huikan.jsp?pg=',this);">
                      <%
                       int num=1;
                         for(int i=0;i<pageSize;i++)
                         {
                            if(num==pg)
                            {
                               %>
                              <option value="<%=num%>" selected="selected">第<%=num%>页</option>
                             <%
                            }
                            else{
                             %>
                              <option value="<%=num%>">第<%=num%>页</option>
                           <%
                            }
                         
                           num++;
                         }
                       %>
                    </select>

                    </td>
                  </tr>

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值