DWR无刷新分页
来源:互联网 发布:php虚拟主机管理系统 编辑:程序博客网 时间:2024/04/25 01:57
一、以从MySql数据库中查询一个部门列表为例
部门表(dept)
id name email tel address
二、整合DWR工作
1、在项目中加入DWR2.jar包
2、在web.xml中加入以下代码:
<!-- 配置DWR的Servlet -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
3、在WEB-INF下加入dwr.xml文件,并加入以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting
2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd" >
<!-- <!DOCTYPE dwr SYSTEM "dwr20.dtd" > -->
<dwr>
<allow>
<create creator="new" javascript="test">
<param name="class" value="taotao.montao.service.ServiceMethod"/>
<include method="defaultAll"/>
<include method="next"/>
<include method="goup"/>
<include method="gotoPage"/>
<include method="caonimamPageSize"/>
</create>
<convert converter="bean" match="taotao.montao.vo.DeptVO">
<param name="include" value="id,name,email,tel,address"/>
</convert>
<convert converter="bean" match="taotao.montao.vo.PageVO">
<param name="include" value="pageCount,nowPage,pageSize,infoCount"/>
</convert>
</allow>
</dwr>
三、前台页面代码:
<%@ page language="java" contentType="text/html; charset=GBK"%>
<html>
<head>
<link rel="stylesheet" type="text/css" href="main.css"/>
<script type='text/javascript' src='/test/dwr/interface/test.js'></script>
<script type='text/javascript' src='/test/dwr/engine.js'></script>
<script type='text/javascript' src='/test/dwr/util.js'></script>
<script type="text/javascript">
var nowPage;
var mmmmmmm;
function getInfo(){
test.defaultAll(hallnpsot);
}
function goSelect(selectPageSize){
var dxsize = mmmmmmm.infoCount;
if(selectPageSize>dxsize){
selectPageSize = mmmmmmm.infoCount;
}
test.caonimamPageSize(selectPageSize,hallnpsot);
}
function goupPage(){
nowPage = mmm.nowPage;
nowPage--;
if(nowPage<=0){
document.getElementById("message").innerHTML = "对不起,已经是第一页";
}else{
test.goup(nowPage,mmmmmmm.pageCount,mmmmmmm.pageSize,hallnpsot);
document.getElementById("message").innerHTML = "";
}
}
function nextPage(){
nowPage = mmm.nowPage;
nowPage++;
if(nowPage>mmm.pageCount){
document.getElementById("message").innerHTML = "对不起,已经是最后一页";
}else{
test.next(nowPage,mmmmmmm.pageCount,mmmmmmm.pageSize,hallnpsot);
document.getElementById("message").innerHTML = "";
}
}
function goPage(){
var nowPage = document.getElementById("initValue").value;
if(nowPage==""){
document.getElementById("message").innerHTML = "对不起,页面编号必须填写";
}else{
test.gotoPage(nowPage,mmmmmmm.pageCount,mmmmmmm.pageSize,hallnpsot);
document.getElementById("message").innerHTML = "";
}
}
function hallnpsot(infoList){
var deptInfo = infoList[0];
mmmmmmm = infoList[1];
mmm = infoList[1];
$(selectElement).options[0].value =mmmmmmm.infoCount;
document.getElementById("msg").innerHTML = "<font color='red'>共"+mmm.infoCount+"条/每页"+mmm.pageSize+"条 共"+mmm.pageCount+"页 当前第"+mmm.nowPage+"页</font>";
//获取一个表格
var table = document.getElementById("tableInfo");
//清楚表中的数据
while(table.rows.length>0){
table.deleteRow(0);
}
//给表格添加头部
var newTh = table.insertRow();
newTh.style.backgroundColor="#C8ECEC";
newTh.align="center";
//表头TD
var newTh1 = newTh.insertCell();
var newTh2 = newTh.insertCell();
var newTh3 = newTh.insertCell();
var newTh4 = newTh.insertCell();
var newTh5 = newTh.insertCell();
var newTh6 = newTh.insertCell();
var newTh7 = newTh.insertCell();
newTh1.style.width="100";
newTh2.style.width="130";
newTh3.style.width="190";
newTh4.style.width="190";
newTh5.style.width="190";
newTh6.style.width="60";
newTh7.style.width="60";
newTh.className = "style2";
//添加表头内容
newTh1.innerHTML = "部门编号";
newTh2.innerHTML = "部门名称";
newTh3.innerHTML = "部门邮箱";
newTh4.innerHTML = "部门电话";
newTh5.innerHTML = "部门地址";
newTh6.innerHTML = "编辑";
newTh7.innerHTML = "删除";
for(var i=0;i<deptInfo.length;i++){
//获取传递过来的数据
var id = deptInfo[i].id;
var name = deptInfo[i].name;
var email = deptInfo[i].email;
var tel = deptInfo[i].tel;
var address = deptInfo[i].address;
//添加一行
var newTr = table.insertRow();
newTr.style.backgroundColor="#E6E6E6";
newTr.align="center";
newTr.className = "style3";
//添加5列
var newTd1 = newTr.insertCell();
var newTd2 = newTr.insertCell();
var newTd3 = newTr.insertCell();
var newTd4 = newTr.insertCell();
var newTd5 = newTr.insertCell();
var newTd6 = newTr.insertCell();
var newTd7 = newTr.insertCell();
//给单元格添加数据
//newTd1.innerHTML = "<input type='checkbox' name='id' value='"+id+"'/>";
newTd1.innerHTML =id;
newTd2.innerHTML = name;
newTd3.innerHTML = email;
newTd4.innerHTML = tel;
newTd5.innerHTML = address;
newTd6.innerHTML = "<a href='javascript:void(0)' onclick=''>编辑</a>";
newTd7.innerHTML = "<a href='javascript:void(0)' onclick=''>删除</a>";
}
}
</script>
</head>
<body onload="getInfo()">
<center>
<div class="style1" id="message"></div>
<table id="tableInfo" width="800" border="0" cellpadding="0" cellspacing="1" bordercolor="#CCCCCC"></table>
<table border="0" width="800">
<tr align="left">
<td align="left" id="msg" width="250"><br><br></td>
<td width="150">
<a href="javascript:void(0)" onclick="goupPage()">上一页</a>
<a href="javascript:void(0)" onclick="nextPage()">下一页</a>
</td>
<td align="left" width="80">
<input type="text" id="initValue" size="5"/>
<input type="button" id="gonum" value="GO" onclick="goPage()"/>
</td>
<td>
显示行数:
<select id="selectElement" onchange="goSelect(this.value)">
<option value="">全部</option>
<option value="5">5</option>
<option value="10">10</option>
<option value="15">15</option>
<option value="20">20</option>
<option value="50">50</option>
<option value="100">100</option>
</select>
</td>
</tr>
</table>
</center>
</body>
</html>
四、后台Service层类代码:
package taotao.montao.service;
import java.util.List;
import taotoa.montao.dao.TestDAO;
public class ServiceMethod {
TestDAO dao = new TestDAO();
//GO页面
@SuppressWarnings("unchecked")
public List gotoPage(int nowpager,int pageContent,int pageSizeSize)
{
return dao.gotoPage(nowpager,pageContent,pageSizeSize);
}
//设置页面显示大小
@SuppressWarnings("unchecked")
public List caonimamPageSize(int pagePageSize)
{
return dao.setSize(pagePageSize);
}
//默认的页面显示数据
@SuppressWarnings("unchecked")
public List defaultAll()
{
return dao.defaultInfo();
}
//下一页的数据
@SuppressWarnings("unchecked")
public List next(int nowpager,int pageContent,int pageSizeSize)
{
return dao.nextInfo(nowpager,pageContent,pageSizeSize);
}
//上一页的数据
@SuppressWarnings("unchecked")
public List goup(int nowpager,int pageContent,int pageSizeSize)
{
return dao.goupInfo(nowpager,pageContent,pageSizeSize);
}
}
五、后台DAO层类代码:
package taotoa.montao.dao;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import taotao.montao.dbcon.DBCon;
import taotao.montao.vo.DeptVO;
import taotao.montao.vo.PageVO;
public class TestDAO {
private DBCon db = null;
private PageVO page = new PageVO();
//获取总的信息数
public int getInfoCount(){
int infoCount = 0;
//获取Connection连接
db = new DBCon();
Connection conn = db.getConnection();
//创建SQL语句
String strSql = "select * from dept";
//执行方法
Statement stmt = null;
ResultSet rs = null;
try{
stmt = conn.createStatement();
rs = stmt.executeQuery(strSql);
while(rs.next()){
infoCount++;
}
}catch(Exception ex){
ex.printStackTrace();
}finally{
try {
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return infoCount;
}
@SuppressWarnings("unchecked")
public List goupInfo(int nowpager,int pageContent,int pageSizeSize){
this.defaultInfo();
page.setNowPage(nowpager);
page.setPageSize(pageSizeSize);
page.setPageCount(pageContent);
List mmm = new ArrayList();
if(nowpager<=0){
page.setNowPage(1);
}
int startLine = (page.getNowPage()*page.getPageSize())-page.getPageSize(); //设置起始行
System.out.println("开始的数据: "+startLine);
//返回的结果集对象
List<DeptVO> list = new ArrayList<DeptVO>();
//获取Connection连接
db = new DBCon();
Connection conn = db.getConnection();
//创建SQL语句
String strSql = "select * from dept limit "+startLine+","+page.getPageSize();
System.out.println(strSql);
//执行方法
Statement stmt = null;
ResultSet rs = null;
try{
stmt = conn.createStatement();
rs = stmt.executeQuery(strSql);
while(rs.next()){
DeptVO dept = new DeptVO();
dept.setId(rs.getInt("id"));
dept.setName(rs.getString("name"));
dept.setEmail(rs.getString("email"));
dept.setTel(rs.getString("tel"));
dept.setAddress(rs.getString("address"));
list.add(dept);
}
}catch(Exception ex){
ex.printStackTrace();
}finally{
try {
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
mmm.add(0,list);
mmm.add(1,page);
return mmm;
}
@SuppressWarnings("unchecked")
public List setSize(int pagePageSize){
this.defaultInfo();
page.setPageSize(pagePageSize);
if(pagePageSize>=page.getInfoCount()){
page.setPageCount(page.getInfoCount()/page.getPageSize());
}else{
page.setPageCount(page.getInfoCount()/page.getPageSize()+1);
}
System.out.println("总的页数: "+page.getPageCount());
List mmm = new ArrayList();
//返回的结果集对象
List<DeptVO> list = new ArrayList<DeptVO>();
//获取Connection连接
db = new DBCon();
Connection conn = db.getConnection();
System.out.println(page.getPageSize());
//创建SQL语句
String strSql = "select * from dept limit 0,"+(page.getPageSize());
System.out.println(strSql);
//执行方法
Statement stmt = null;
ResultSet rs = null;
try{
stmt = conn.createStatement();
rs = stmt.executeQuery(strSql);
while(rs.next()){
DeptVO dept = new DeptVO();
dept.setId(rs.getInt("id"));
dept.setName(rs.getString("name"));
dept.setEmail(rs.getString("email"));
dept.setTel(rs.getString("tel"));
dept.setAddress(rs.getString("address"));
list.add(dept);
}
}catch(Exception ex){
ex.printStackTrace();
}finally{
try {
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
mmm.add(0,list);
mmm.add(1,page);
return mmm;
}
@SuppressWarnings("unchecked")
public List gotoPage(int nowpager,int pageContent,int pageSizeSize){
this.defaultInfo();
page.setNowPage(nowpager);
page.setPageSize(pageSizeSize);
page.setPageCount(pageContent);
List mmm = new ArrayList();
if(nowpager>page.getPageCount()){
page.setNowPage(page.getPageCount()); //如果请求的页面大于总页数
}
int startLine = page.getNowPage()*page.getPageSize()-page.getPageSize(); //设置起始行
//返回的结果集对象
List<DeptVO> list = new ArrayList<DeptVO>();
//获取Connection连接
db = new DBCon();
Connection conn = db.getConnection();
//创建SQL语句
String strSql = "select * from dept limit "+startLine+","+page.getPageSize();
System.out.println(strSql);
//执行方法
Statement stmt = null;
ResultSet rs = null;
try{
stmt = conn.createStatement();
rs = stmt.executeQuery(strSql);
while(rs.next()){
DeptVO dept = new DeptVO();
dept.setId(rs.getInt("id"));
dept.setName(rs.getString("name"));
dept.setEmail(rs.getString("email"));
dept.setTel(rs.getString("tel"));
dept.setAddress(rs.getString("address"));
list.add(dept);
}
}catch(Exception ex){
ex.printStackTrace();
}finally{
try {
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
mmm.add(0,list);
mmm.add(1,page);
return mmm;
}
@SuppressWarnings("unchecked")
public List nextInfo(int nowpager,int pageContent,int pageSizeSize){
this.defaultInfo();
page.setNowPage(nowpager);
page.setPageSize(pageSizeSize);
page.setPageCount(pageContent);
List mmm = new ArrayList();
if(nowpager>page.getPageCount()){
page.setNowPage(page.getPageCount()); //如果请求的页面大于总页数
}
int startLine = (page.getNowPage()-1)*page.getPageSize(); //设置起始行
//返回的结果集对象
List<DeptVO> list = new ArrayList<DeptVO>();
//获取Connection连接
db = new DBCon();
Connection conn = db.getConnection();
//创建SQL语句
String strSql = "select * from dept limit "+startLine+","+page.getPageSize();
System.out.println(strSql);
//执行方法
Statement stmt = null;
ResultSet rs = null;
try{
stmt = conn.createStatement();
rs = stmt.executeQuery(strSql);
while(rs.next()){
DeptVO dept = new DeptVO();
dept.setId(rs.getInt("id"));
dept.setName(rs.getString("name"));
dept.setEmail(rs.getString("email"));
dept.setTel(rs.getString("tel"));
dept.setAddress(rs.getString("address"));
list.add(dept);
}
}catch(Exception ex){
ex.printStackTrace();
}finally{
try {
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
mmm.add(0,list);
mmm.add(1,page);
return mmm;
}
//默认页面显示的数据
@SuppressWarnings("unchecked")
public List defaultInfo(){
int nowPage = 1;
if (nowPage < 1){
nowPage =1;
}
//返回的结果集对象
List<DeptVO> list = new ArrayList<DeptVO>();
//设置页对象
page.setInfoCount(this.getInfoCount()); //设置记录总数
page.setNowPage(nowPage); //设置当前页数
page.setPageSize(5); //设置每页显示数
page.setPageCount(page.getInfoCount()/page.getPageSize()+1); //设置总页数
//获取Connection连接
db = new DBCon();
Connection conn = db.getConnection();
//创建SQL语句
String strSql = "select * from dept limit 0,"+(page.getPageSize());
//执行方法
Statement stmt = null;
ResultSet rs = null;
try{
stmt = conn.createStatement();
rs = stmt.executeQuery(strSql);
while(rs.next()){
DeptVO dept = new DeptVO();
dept.setId(rs.getInt("id"));
dept.setName(rs.getString("name"));
dept.setEmail(rs.getString("email"));
dept.setTel(rs.getString("tel"));
dept.setAddress(rs.getString("address"));
list.add(dept);
}
}catch(Exception ex){
ex.printStackTrace();
}finally{
try {
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
List mm = new ArrayList();
mm.add(0,list);
mm.add(1,page);
return mm;
}
}
六、后台实体类代码:
1、PageVO.java
package taotao.montao.vo;
public class PageVO {
private int pageCount; //总页数
private int nowPage; //当前页编号
private int pageSize; //页面大小
private int infoCount; //总记录数
public int getPageCount() {
return pageCount;
}
public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}
public int getNowPage() {
return nowPage;
}
public void setNowPage(int nowPage) {
this.nowPage = nowPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getInfoCount() {
return infoCount;
}
public void setInfoCount(int infoCount) {
this.infoCount = infoCount;
}
}
2、DeptVO.java
package taotao.montao.vo;
public class DeptVO {
private int id;
private String name;
private String email;
private String tel;
private String address;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
- dwr无刷新分页
- DWR无刷新分页
- DWR 无刷新分页(JSP MYSQL)
- DWR实现无刷新上传
- 无刷新分页控件
- Repeater 无刷新分页
- 无刷新分页
- Repeater无刷新分页
- 分页无刷新
- php 无刷新分页
- ajax 无刷新分页
- 无刷新分页
- ajax无刷新分页
- jQuery 无刷新分页
- 无刷新分页
- 页面无刷新分页
- 实现无刷新分页
- Repeater无刷新分页
- 3个递推和递归题目:紧密数、排队问题、表达式计数
- SSH2整合dwr
- Struts2绑定Jquery EasyUI
- 使用DWR+Dtree实现无刷新树形菜单
- my andorid application address that remote server
- DWR无刷新分页
- web服务器默认的servlet
- Git和SVN之间的五个基本区别
- 【Word 2010】重新开始编号
- 引导加载程序之争:了解 LILO 和 GRUB
- Dropbox
- SQL SERVER 2005/2008 全文索引
- 工作小结备忘
- Oracle RAC 迁移OCR(10g)