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 sort="external" 不需要
当设定
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" ></display:column>
<display:column property="numcuguid" title="ID" ></display:column>
<display:column property="vc2cuname" title="vc2cuname" ></display:column>
<display:column property="vc2cucode" title="vc2cucode" ></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外部分页,支持外部排序"这个主题主要涉及两个关键概念:外部分页和外部排序。 外部分页(External Pagination)指的是当数据存储在数据库或其他外部存储介质中时,只在用户需要时从服务器获取相应页...
"display table 外部分页 支持当前页排序"这个主题聚焦于如何在网页上有效地显示大量表格数据,同时提供分页功能和当前页面的排序能力。这种技术常用于Web应用程序,如后台管理系统、数据分析平台等,旨在提升用户...
<table id="flexTable" style="display: none"></table> ``` c. 编写JavaScript代码初始化FlexiGrid: ```javascript $(document).ready(function(){ var grid=$("#flexTable").flexigrid({ width: 760, ...
通过设置`border`、`padding`、`color`、`font-family`等属性调整表格的外观,使用`width`、`height`控制尺寸,`display: table-cell`确保元素按表格布局排列。 4. JavaScript与jQuery JavaScript和jQuery可以用来...
这表示实现分页功能的同时,还可以提供列排序的功能。同时,表格的样式通过引用外部的CSS文件来定义,以保证代码的可读性和可维护性。 7. 代码可扩展性:在使用jQuery进行表格分页的实现时,应当考虑代码的可扩展性...
可能还会涉及到现代前端框架(如Bootstrap)中预设的表格样式,或者使用JavaScript和jQuery实现交互效果,如排序、筛选和分页。 标签中的“工具”可能暗示着一些辅助工具或库,比如CSS预处理器(如Sass、Less)能...
4. **使用标签**:在JSP页面中,使用Displaytag的标签如`<display:table>`、`<display:column>`等来定义表格和列。 5. **配置属性**:通过设置标签的属性,如`export`, `sort`, `paging`等,来开启或调整Displaytag...
2. **link 和 @import 区别**:`link`是HTML标签,用于引入外部CSS文件,可实现异步加载,支持浏览器缓存,同时可以实现DNS预解析,加载性能更好;`@import`是CSS语法,只能在CSS文件内部使用,会阻塞页面渲染直到...
<class name="MyContent" table="jc_mycontent"> <meta attribute="sync-DAO">false</meta> <cache usage="read-write"/> <id name="id" type="java.lang.Integer" column="id"><generator class=...