今天给各位分享jeecms的分页怎么做的知识,其中也会对javaee分页功能的实现进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、JSP页面分页怎么做?
分页须知知识点:
(1)JDBC2.0的可滚动结果集。
(2)HTTP GET请求。
一、可滚动结果集
Connection con = DriverManager.getConnection();
PreparedStatement stmt = con.prepareStatement(sql,ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stmt.executeQuery();
常用方法:
(1)rs.absolute(n); 可以将指针跳到第n行。
(2)rs.relative(n); 可以将指针相对向下或向上n行。
(3)rs.first();
(4)rs.last();
(5)int curRow = rs.getRow(); 指针指向的当前行
二、功能实现分解
1.计算结果的个数
rs.last();
int size = rs.getRow();
即可得到结果的个数。
2.得到需要分几页
如果一页能够放5条记录,则
int pageCount = (size%5==0)?(size/5):(size/5+1);
即可获得需要分几页。
3.控制一页中规定显示记录个数
如果一页能显示5条记录,可以通过使用count进行计数。
int count = 0;
do{
if(count=5) break;
.....
count++;
}while(rs.next());
通过break语句,能够使其显示到超过规定条目就跳出。
4.如何知道当前是第几页
通过HTTP get的特点,在地址栏中标明当前地址,如 表示现在是第一页。
String tmp = request.getParameter("curPage");
if(tmp==null){
tmp="1";
}
curPage = Integer.parseInt(tmp);
可以获得当前页。
注意:
rs.absolute(1);表示指向第一条记录;
不存在rs.absolute(0);
rs.absolute((curPage-1)*PAGESIZE+1); 把结果集指针调整到当前页应该显示的记录的开始.
比如如果一页显示5条记录,当前页是第二页,则需要把指针调整到6,当前页是第三页,则需要把指针调整为11.
5.点击首页、上一页、下一页、尾页的行为
a href="multipage.jsp?curPage=%curPage+1%" 下一页/a
a href="multipage.jsp?curPage=%curPage-1%" 上一页/a
a href="multipage.jsp?curPage=%pageCount%" 尾页/a
a href="multipage.jsp?curPage=1" 首页/a
6.为了保存当前页位置,则需要把当前页位置设为全局变量。
%@ page contentType="text/html" pageEncoding="GB2312" language="java"%
%@ page import="java.sql.*"%
html
head
titlehello/title
/head
body
table border="1" spacing="2"
%!
public static final String DRIVER = "com.mysql.jdbc.Driver";
public static final String USER = "root";
public static final String PASS = "12345";
public static final String URL = "jdbc:mysql://localhost:3306/MLDN";
public static final int PAGESIZE = 5;
int pageCount;
int curPage = 1;
%
%
//一页放5个
String user = null;
String pass = null;
try{
Class.forName(DRIVER);
Connection con = DriverManager.getConnection(URL,USER,PASS);
String sql = "SELECT empno,ename,job,hiredate,sal,comm FROM emp";
PreparedStatement stat = con.prepareStatement(sql,ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stat.executeQuery();
rs.last();
int size = rs.getRow();
pageCount = (size%PAGESIZE==0)?(size/PAGESIZE):(size/PAGESIZE+1);
String tmp = request.getParameter("curPage");
if(tmp==null){
tmp="1";
}
curPage = Integer.parseInt(tmp);
if(curPage=pageCount) curPage = pageCount;
boolean flag = rs.absolute((curPage-1)*PAGESIZE+1);
out.println(curPage);
int count = 0;
do{
if(count=PAGESIZE)break;
int empno = rs.getInt(1);
String ename = rs.getString(2);
String job = rs.getString(3);
Date hiredate = rs.getDate(4);
float sal = rs.getFloat(5);
int comm = rs.getInt(6);
count++;
%
tr
td%=empno%/td
td%=ename%/td
td%=job%/td
td%=hiredate%/td
td%=sal%/td
td%=comm%/td
/tr
%
}while(rs.next());
con.close();
}
catch(Exception e){
}
%
/table
a href = "multipage.jsp?curPage=1" 首页/a
a href = "multipage.jsp?curPage=%=curPage-1%" 上一页/a
a href = "multipage.jsp?curPage=%=curPage+1%" 下一页/a
a href = "multipage.jsp?curPage=%=pageCount%" 尾页/a
第%=curPage%页/共%=pageCount%页
/body
/html
2、用JEECMS的标签进行文章内容的分页
你把sysPage="1" 拿下来看下:
[@cms_content_page channelId='72' count='10' orderBy='2' dateFormat='yyyy-MM-dd' ]
[#list tag_pagination.list as a]
tr height="30px" bgcolor="#FFFFde"
td${a_index+1}/td
td[@text_cut s=a.title append=append/]/td
td[@text_cut s=a.txt append=append/]/td
td[${a.date?string(dateFormat)}]/td
/tr
[/#list]
[@cms_pagination sysPage='1'/] //分页内容放这边!
[/@cms_content_page]
3、如何修改jeecms后台管理分页
1、 将xml中的
servlet-mapping
servlet-nameJeeCmsAdmin/servlet-name
url-pattern/jeecms/admin/*/url-pattern
/servlet-mapping
改为
servlet-mapping
servlet-nameJeeCmsAdmin/servlet-name
url-pattern/hailou/*/url-pattern
/servlet-mapping
2、 将jeecms-servlet-admin.xml中的
property name="loginUrl" value="/jeecms/admin/login.do"/
property name="returnUrl" value="/jeecms/admin/index.do"/
改为
property name="loginUrl" value="/hailou/login.do"/
property name="returnUrl" value="/hailou/index.do"/
entry key="appBase" value="/hailou"/
4、想用JAVA WEB 实现分页技术。请问应该怎么做
实现原理很简单,就是建立一个Page类,里面放当前访问的页数(这个是从客户浏览器传到后台的数据,所以你的分页需要用它来定位记录的条目)和每一页显示的记录行数。然后通过分页计算就可以得出下列数据。
(假定你的页数从1开始)
1、总页数 = 总记录数/每页大小,如果0!=总记录数%每页大小,那么总页数再+1
2、当前页数(从浏览器传递的参数中获得)
3、表记录的起始位置=(当前页数-1)*每页大小
4、总记录数(select count(*) from [表名] [where [条件]],从数据库中查询得到)
5、每页大小,可以固定,也可以从页面传过来
有了这几个参数之后,就用sql语句查出对应的记录就可以了。
mysql数据库用limit 表记录的起始位置,每页大小 语句添加到你的查询语句最后面
sqlserver数据库用top语句和not in 来做
oracle数据库用rownum来做
再给你一段分页对象代码,你自己先读一下
public class Page {
private long totalCount = 0;// 总记录数
private int pageNumber = 1;// 当前页号,默认显示第一页
private int pageSize = 20; // 每页大小,默认每页20条
private int totalPage = 0;// 总页数,默认为0
private int startRow = 0;// 起始记录行号,默认为从表头开始
/**
* 分页计算方法,由setTotalCount调用
*/
public void pagination() {
// 计算总页数
if (this.totalCount % pageSize == 0)
this.totalPage = new Long(this.totalCount / pageSize).intValue();
else
this.totalPage = new Long(this.totalCount / pageSize).intValue() + 1;
// 排除错误页号
if (this.pageNumber 1)
this.pageNumber = 1;
if (this.pageNumber this.totalPage)
this.pageNumber = this.totalPage;
// 计算起始行号
this.startRow = (this.pageNumber - 1) * this.pageSize;
}
public long getTotalCount() {
return totalCount;
}
public void setTotalCount(long totalCount) {
this.totalCount = totalCount;
this.pagination();
}
public int getPageNumber() {
return pageNumber;
}
public void setPageNumber(int pageNumber) {
this.pageNumber = pageNumber;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getStartRow() {
return startRow;
}
public void setStartRow(int startRow) {
this.startRow = startRow;
}
}
jeecms的分页怎么做的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于javaee分页功能的实现、jeecms的分页怎么做的信息别忘了在本站进行查找喔。