var xmlHttp; function createXMLHttpRequest() { if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } } //得到首次加载的数据 function Display() { createXMLHttpRequest(); var page; //得到需要传入的查询条件 var inputtest =document.getElementById("inputtest").value; var url ="reportcheck?timeStamp="+new Date().getTime()+"&inputtest"+inputtest; xmlHttp.open("post",url,true); xmlHttp.onreadystatechange = process; xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;"); xmlHttp.send(inputtest); }
// 分页的时候的方法 function Displayy(curpage){ createXMLHttpRequest(); //得到需要传入的查询条件 var inputtest =document.getElementById("inputtest").value; // alert("inpttest="+inputtest); var url ="reportcheck?timeStamp="+new Date().getTime()+"&curpage="+curpage+"&inputtest"+inputtest; xmlHttp.open("post",url,true); xmlHttp.onreadystatechange = process; xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;"); xmlHttp.send(inputtest);
Connection con = DriverManager.getConnection("jdbc:odbc:wombat","login", "password"); Statement stmt = con.createStatement(); User user ; List<User> list = new ArrayList<User>(); ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1"); user = new User(); while (rs.next()) { user.setXXX(rs.get("1")); ..............
首先,我把分页分成了4个部分,LZ 需要把 4个部分分别放到相应的地方。
html:<tr>
<td colspan="8" align="left">
共有${pages}条记录|总计
<span id="divid">${PageCount}</span>
页|每页显示
<select id="page" onchange="cutPage()">
<c:if test="${v2==5}">
<option selected>5</option>
<option>10</option>
<option>15</option>
</c:if>
<c:if test="${v2==10}">
<option>5</option>
<option selected>10</option>
<option>15</option>
</c:if>
<c:if test="${v2==15}">
<option>5</option>
<option>10</option>
<option selected>15</option>
</c:if>
</select>条
|<a href="<%=basePath%>infor.do?method=deleteFind&I=1&J=${v2}">首页</a>
|<a href="<%=basePath%>infor.do?method=deleteFind&I=${v-1 }&J=${v2 }">上一页</a>
|<a href="<%=basePath%>infor.do?method=deleteFind&I=${v+1 }&J=${v2 }">下一页</a>
|<a href="<%=basePath%>infor.do?method=deleteFind&I=${PageCount }&J=${v2 }">末页</a>
|跳到第<input type="text" id="text1" size="2" value="${v }" onKeyPress="return limitNum(this);"
>页
<input type="button" value="Go " onclick="cutPage()">
</td>
</tr>---------------------------------------------------------------------------------action:
public ActionForward deleteFind(ActionMapping mapping, ActionForm form,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response) { Object values[] = new Object[10];
List<?> list =infordao.findAll();
System.out.println(values.length+"...................");
System.out.println(list.size()+"------------");
int pages = list.size();
System.out.println(pages);
request.getSession().setAttribute("pages", pages);//总记录放进session
String a = request.getParameter("I");
String b = request.getParameter("J");
int p=infordao.findAll().size();
if (null == a && null == b) {
request.getSession().setAttribute("v", 1);
request.getSession().setAttribute("v2", 5);
request.getSession().setAttribute("pages", pages);
int pageCount =getPage(pages, 5);//初始化时有多少页
request.getSession().setAttribute("PageCount", pageCount);
List syuser = infordao.findPages(values,0, 5);//初始时默认在第一页
request.getSession().setAttribute("delete", syuser);
return mapping.findForward("infor"); } else {
int i = Integer.parseInt(request.getParameter("I".trim()));
int j = Integer.parseInt(request.getParameter("J"));
System.out.println(i + " --------------" + j);
int q=p/j+1;
System.out.println("q="+q);
int pageCount = getPage(pages, j);//初始化时有多少页
System.out.println(pageCount+"this is the page");
if (p % j != 0 && i == q)
{
request.getSession().setAttribute("PageCount", pageCount);
request.getSession().setAttribute("v", i);
request.getSession().setAttribute("v2", j);
List<?> syuser2 = infordao.findPages(values, (i-1)*j, p-((i-1)*j));
request.getSession().setAttribute("delete", syuser2);
System.out.println("say 1"+(p-((i-1)*j)));
return mapping.findForward("infor");
}
if (i <= pageCount && i > 0) {
request.getSession().setAttribute("PageCount", pageCount);
request.getSession().setAttribute("v", i);
request.getSession().setAttribute("v2", j);
List<?> syuser2 = infordao.findPages(values, (i-1)*j, j);
request.getSession().setAttribute("delete", syuser2);
System.out.println("say2"+(i-1)*j);
return mapping.findForward("infor");
} else {
return mapping.findForward("infor");
}
} }
public int getPage(int i, int j)
{
int mod=i%j;
int pageCount;
System.out.println(i+" "+j);
if(mod==0)
{
pageCount=i/j;
}
else if(i<j)
{
pageCount=1;
}
else
{
pageCount=i/j+1;
}
return pageCount;
}
-----------------------------------------------------------------------------------
hibernate:public List<?>findPages(Object[] values,int i,int j)
{
return findByPage("from CatInfor ",null,i,j);
}
public List<?> findByPage(String hql, Object[] values, int offset,
int pageSize) {
List<?> list = getHibernateTemplate().executeFind(
getHibernateCallback(hql, values, offset, pageSize));
return list;
}
public HibernateCallback getHibernateCallback(final String hql,
final Object[] values, final int offset, final int pageSize) { return new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
if (values != null)
for (int i = 0; i < values.length; i++) {
query.setParameter(i, values[i]);
}
List<?> result = query.setFirstResult(offset).setMaxResults(
pageSize).list();
return result;
}
};
}
---------------------------------------------------------------------------------
script:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><script type="text/javascript">
var value1,c1,c2;
function cutPage()
{var op=document.getElementById("page");
for(var i=0;i<op.options.length;i++)
{
if(op.options[i].selected==true)
{
value1=op.options[i].text;
}
}
var x=document.getElementById("text1").value;//第几页
var n=value1;//每页显示几条
var m=${pages};//记录总数
alert(m);if(n*x-m>n)
{
alert("没有这么多页!");
document.getElementById("text1").value=${v};
return;
}
else
{
location.href="<%=basePath%>infor.do?method=deleteFind&I="+x+"&J="+value1;}
}
function limitNum(obj) {
if(event.keyCode<47||event.keyCode>57){event.keyCode=0;} return ;
} </script>
希望LZ能认真看完这些代码。东西是因人而异的,知道原理一切都手到擒来。愿圣光与你同在~阿门
import java.sql.* ;
import java.util.*;
public class StuManager { private static StuManager instance = new StuManager() ;
private StuManager(){} ;
public static StuManager getInstance(){
return instance ;
}
// oracle实现分页的查询语句
// select s_id, s_name, s_age, s_sex, s_class
// from
// (
// select rownum rn, s_id, s_name, s_age, s_sex, s_class
// from
// (select s_id, s_name, s_age, s_sex, s_class
// from t_student order by s_id
// )where rownum <= 10
// )where rn > 5 ;
public PageModel findStudentList(int pageNo, int pageSize){
PageModel pageModel = null ;
StringBuffer sql = new StringBuffer() ;
sql.append("select s_id, s_name, s_age, s_sex, s_class ")
.append("from")
.append("(")
.append("select rownum rn, s_id, s_name, s_age, s_sex, s_class ")
.append("from")
.append("(")
.append("select s_id, s_name, s_age, s_sex, s_class ")
.append("from t_student order by s_id")
.append(")")
.append("where rownum <= ?")
.append(")")
.append("where rn > ? ");
Connection conn = null ;
PreparedStatement pstmt = null ;
ResultSet rs = null ;
try{
conn = DbUtil.getConnection() ;
pstmt = conn.prepareStatement(sql.toString()) ;
pstmt.setInt(1, pageNo*pageSize) ;
pstmt.setInt(2, (pageNo - 1)*pageSize) ;
rs = pstmt.executeQuery() ;
List<Student> stuList = new ArrayList<Student>() ;
while (rs.next()){
Student stu = new Student() ;
stu.setS_id(rs.getString("s_id")) ;
stu.setS_name(rs.getString("s_name")) ;
stu.setS_age(rs.getString("s_age")) ;
stu.setS_sex(rs.getString("s_sex")) ;
stu.setS_class(rs.getString("s_class")) ;
stuList.add(stu) ;
}
pageModel = new PageModel() ;
pageModel.setList(stuList) ;
pageModel.setTotalRecords(getTotalRecords(conn)) ;
pageModel.setPageSize(pageSize);
pageModel.setPageNo(pageNo);
}catch(Exception e){
e.printStackTrace() ;
}finally{
DbUtil.close(rs) ;
DbUtil.close(pstmt) ;
DbUtil.close(conn) ;
}
return pageModel ;
}
/**
* 取得总记录数
* @param conn
* @return
*/
private int getTotalRecords(Connection conn)
throws SQLException {
String sql = "select count(*) from t_student";
PreparedStatement pstmt = null;
ResultSet rs = null;
int count = 0;
try {
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
rs.next();
count = rs.getInt(1);
}finally {
DbUtil.close(rs);
DbUtil.close(pstmt);
}
return count;
}
}
<%@ page import="com.stmcc.test.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*"%>
<html>
<head><title>分页展示</title></head>
<%
int pageNo = 1 ;
int pageSize = 5 ;
String pageNoString = request.getParameter("pageNo") ;
if(pageNoString != null){
pageNo = Integer.parseInt(pageNoString) ;
}
PageModel pageModel = StuManager.getInstance().findStudentList(pageNo,pageSize) ;
%>
<script type="text/javaScript">
function topPage() {
window.self.location = "student.jsp?pageNo=<%=pageModel.getTopPageNo()%>";
}
function previousPage() {
window.self.location = "student.jsp?pageNo=<%=pageModel.getPreviousPageNo()%>";
}
function nextPage() {
window.self.location = "student.jsp?pageNo=<%=pageModel.getNextPageNo()%>";
}
function bottomPage() {
window.self.location = "student.jsp?pageNo=<%=pageModel.getBottomPageNo()%>";
}
</script>
<body>
<center>
<table border="1">
<tr>
<td>学生编号</td>
<td>学生姓名</td>
<td>学生年龄</td>
<td>学生性别</td>
<td>学生班级</td>
</tr>
<%
List stuList = pageModel.getList() ;
for(Iterator<Student> iter = stuList.iterator(); iter.hasNext();){
Student stu = iter.next() ;
%>
<tr>
<td><%=stu.getS_id() %></td>
<td><%=stu.getS_name() %></td>
<td><%=stu.getS_age() %></td>
<td><%=stu.getS_sex() %></td>
<td><%=stu.getS_class() %></td>
</tr>
<%
}
%>
<tr><td colspan="5">
共 <%=pageModel.getTotalPages() %> 页
当前第 <%=pageModel.getPageNo() %>页
<input type="button" value="首页" onClick="topPage()">
<input type="button" value="上一页" onClick="previousPage()">
<input type="button" value="下一页" onClick="nextPage()">
<input type="button" value="尾页" onClick="bottomPage()">
</td></tr>
</table>
</center>
</body>
</html>
http://www.iteye.com/topic/1113711
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
//得到首次加载的数据
function Display() {
createXMLHttpRequest();
var page;
//得到需要传入的查询条件
var inputtest =document.getElementById("inputtest").value;
var url ="reportcheck?timeStamp="+new Date().getTime()+"&inputtest"+inputtest;
xmlHttp.open("post",url,true);
xmlHttp.onreadystatechange = process;
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
xmlHttp.send(inputtest);
}
// 分页的时候的方法
function Displayy(curpage){
createXMLHttpRequest();
//得到需要传入的查询条件
var inputtest =document.getElementById("inputtest").value;
// alert("inpttest="+inputtest);
var url ="reportcheck?timeStamp="+new Date().getTime()+"&curpage="+curpage+"&inputtest"+inputtest;
xmlHttp.open("post",url,true);
xmlHttp.onreadystatechange = process;
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
xmlHttp.send(inputtest);
}
function process() {
if(xmlHttp.readyState == 4 && xmlHttp.status == 200){
//alert(xmlHttp.responseText);
var users = JSON.parse(xmlHttp.responseText);
//alert(users[0].ReportName);
if(users.length==0){
//alert(users.length);//check list size
document.getElementById("floatshow").innerHTML="";
alert("条件查找的数据不存在!");
return ;
}else{
var headers="";
headers+="<tr>"
headers+="<td align='middle'><link>ReportName<link></td>";
headers+="<td align='middle'>Report presentation</td>";
headers+="</tr>"
for ( var i = 0;i< users.length;i++) {
headers+="<tr>";
headers+="<td><a href="+users[i].ReportUri+">"+users[i].ReportName+"</td><td>"+users[i].ReportDesc+"</td><td><img src="+users[i].IMG_URL+"/></td>";
headers+="</tr>";
}
headers+="<tr>";
headers+="<td height='25' colspan='9' width='727'>";
headers+="<table cellspacing=1 width='100%' border=0 colspan='4'>";
headers+="<tr>";
headers+="<td align='center' >";
headers+="<pre>总页数:"+users[users.length-1].alltPage+" 当前:"+users[users.length-1].nowPage+" <a href='javascript:Displayy(curpage=1)'> 首页<a href='javascript:Displayy(curpage="+users[users.length-1].alltPage+")'> 尾页</a><a href ='javascript:Displayy(curpage="+users[users.length-1].nowPage+'-1'+")'> 上一页</a><a href ='javascript:Displayy(curpage="+users[users.length-1].nowPage+'+1'+")'> 下一页</a> <input id= 'goid' type = 'text' size = '2' name ='t1'/><input type = 'button' value = 'GO' onclick = 'checktext();'/>";
headers+="</pre>";
headers+="</td>";
headers+="</tr>";
headers+="</table>";
headers+="</td>";
headers+="</tr>";
var top ="<table id='tableSearch' border='2'style='BORDER-RIGHT: #999999 1px solid; BORDER-TOP: #999999 1px solid; BORDER-LEFT: #999999 1px solid; WIDTH: 90%; BORDER-BOTTOM: #999999 1px solid; BORDER-COLLAPSE: collapse ;margin:15px 30px'>";
var bottom="</table>";
var countString=top+headers+bottom;
document.getElementById("floatshow").innerHTML=countString;
}
anole('tableSearch',1,'#ffffff','#ccccff','#ffccff','#cc99ff');
}
}
function checktext(){
var str = document.getElementById("goid").value;
if(""==str){
alert("请输入一个数字");
return false;
}
if(isNaN(str)){
alert("必须是一个数字");
return false;
}
window.location ="javascript:Displayy(curpage="+str+")";
}
</script>
</head> <body>
<form >
<table id="tableSearch" align="center" >
<tr>
<td>
基本查询:
<input id="inputtest" text="text" name="checkBasic">
<font size="2" color="blue">(产品名称/编号等)</font>
</td >
<td>
<input id="test" type="button" name="Submit1" value="查询数据 " onclick="Display();">
</td>
</tr>
</table>
</form>
<div id="floatshow" dir="ltr" style="background-color:appworkspace;" title="Report List Query"></div> <!-- 在此处我们将会生成一个动态的table来显示查询的数据 --
Statement stmt = con.createStatement();
User user ;
List<User> list = new ArrayList<User>();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
user = new User();
while (rs.next()) { user.setXXX(rs.get("1"));
..............
list.add(user);
}
return list;..............\将list返回到jsp,
再jsp中调用javaScript分页工具。。