`
thinktothings
  • 浏览: 794390 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

display table 外部分页 支持当前页排序

    博客分类:
  • JSP
阅读更多

display table 外部分页 支持当前排序

 

需求:根据当前面码数currentPage,每页记录数pageSize,数据总记录数totalCount,进行分页,算出,每页的数据开始索引startIndex和结束索引endIndex

 

 

web.xml

 

<servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>CustomerServlet</servlet-name>
        <servlet-class>com.tht.customer.servlet.CustomerServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>CustomerServlet</servlet-name>
        <url-pattern>/servlet/CustomerServlet</url-pattern>
    </servlet-mapping>

 

 

 

    <jsp-config>
        <taglib>

            <taglib-uri>http://jsptags.com/tags/navigation/pager</taglib-uri>

            <taglib-location>/WEB-INF/pager-taglib.tld</taglib-location>

            </taglib>

    </jsp-config>

 

result.jsp

当设定 partialList="true"时,自动进行当前页排序


<%@ taglib  prefix="display" uri="http://displaytag.sf.net" %>



<head>
            <link rel="stylesheet" href="<%=request.getContextPath()%>/css/print.css" type="text/css" media="print" />
        <link rel="stylesheet" href="<%=request.getContextPath()%>/css/screen.css" type="text/css" media="screen,print" /> 

  </head>

<body>

    <display:table name="list"
                class="its" id="item" name="list"  defaultsort="1" pagesize="${pageSize}" partialList="true" size="resultSize"  requestURI="/displaypagination/servlet/CustomerServlet"> 
             
                <display:column property="id"  title="I" sortable="true" ></display:column>
                <display:column property="numcuguid"  title="ID" sortable="true" ></display:column>
                <display:column property="vc2cuname"  title="vc2cuname" sortable="true"></display:column>
                <display:column property="vc2cucode" title="vc2cucode"  sortable="true"></display:column>
            </display:table>   


<body>

 

Servlet部分

1、页面请求,会把请求的页码数传给后台:

//得到当前页的字符串
        String strP=request.getParameter((new ParamEncoder("item").encodeParameterName(TableTagParameters.PARAMETER_PAGE)));
   
        //请求的需要显示的页码数
        int currentPage=0;
        if(strP==null){
            currentPage=1;
        }else{
            currentPage=Integer.parseInt(strP);
        }
        //当前页
        System.out.println("currentPage:"+currentPage);


2、通过后台方式得到数据库中的总记录数:

//总记录数
        int totalCount=new BaseDao<CustomerServlet>().getTotalCount("select count(*) from ct_cuinfo");


3、算出开始索引和结束索引

提供参数值  int currerntPage,int pageSize,int totalCount


/**
 * oracle分页工具类
 * @author liuwen
 * 传参进来  int currerntPage,int pageSize,int totalCount
 *
 */
public class PageTools {
   
    int resultSize=100;  //总页数
    int pageSize=5;//    每页显示的记录数
    int totalCount=0;   //总记录数
    int currerntPage=0;//当前页码数
   
    int startIndex=0;//开始记录索引
    int endIndex=0;  //结束记录索引
   
   
    /**
     *
     * @param currerntPage  当前页码数
     * @param pageSize      每页显示的记录条数
     * @param totalCount    总记录数
     */
    public PageTools(int currerntPage,int pageSize,int totalCount){
        this.currerntPage=currerntPage;
        this.pageSize=pageSize;
        this.totalCount=totalCount;
        calResultSize(); //计算总页数  计算优先级别1
        calStartIndexAndEndIndex(); //计算开始的rownum和结束的rownum   计算优先级别2
    }
   
    /**
     * 计算总页数  计算优先级别1
     */
    public void calResultSize(){

        int modTotal=this.totalCount%pageSize;
        if(modTotal==0){
            resultSize=this.totalCount/pageSize;
        }else{
            resultSize=this.totalCount/pageSize+1;
        }
    }
    /**
     * 计算开始的rownum和结束的rownum   计算优先级别2
     */
    public void calStartIndexAndEndIndex(){
        if(currerntPage==1){
            startIndex=0;
        }else{
            startIndex=(currerntPage-1)*pageSize;
        }
       
        endIndex=currerntPage*pageSize+1;
       
       
    }
   

}

 

3、通过开始索引和结束索引查出请求页码数据,显示给前端

 

  • 大小: 9.3 KB
分享到:
评论

相关推荐

    display table外部分页,支持外部排序

    "display table外部分页,支持外部排序"这个主题主要涉及两个关键概念:外部分页和外部排序。 外部分页(External Pagination)指的是当数据存储在数据库或其他外部存储介质中时,只在用户需要时从服务器获取相应页...

    display table 外部分页 不支持排序

    在IT行业中,"display table 外部分页 不支持排序"是一个常见的前端开发问题,尤其是在处理大量数据时。Display table通常指的是HTML中的`&lt;table&gt;`元素,用于展示表格数据。外部分页则是指将数据分块加载,而不是一...

    基于jquery实现的表格分页实现代码

    这种做法可以在用户翻页时仅请求当前页的数据,而不必每次都从服务器获取全部数据,大大减少了网络传输的负担,并能提升用户体验。 通过以上各点,我们可以得知基于jQuery实现的表格分页是一个结合前端JavaScript和...

    cms后台管理

    &lt;class name="MyContent" table="jc_mycontent"&gt; &lt;meta attribute="sync-DAO"&gt;false&lt;/meta&gt; &lt;cache usage="read-write"/&gt; &lt;id name="id" type="java.lang.Integer" column="id"&gt;&lt;generator class=...

Global site tag (gtag.js) - Google Analytics