加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

DWR无刷新分页

发布时间:2020-12-15 21:00:44 所属栏目:百科 来源:网络整理
导读:一、以从MySql数据库中查询一个部门列表为例 部门表(dept) idnameemailteladdress 二、整合DWR工作 1、在项目中加入DWR2.jar包 2、在web.xml中加入以下代码: !-- 配置DWR的Servlet -- servlet servlet-namedwr-invoker/servlet-name servlet-classorg.direct

一、以从MySql数据库中查询一个部门列表为例
部门表(dept)
idnameemailteladdress
二、整合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,hallnpsot);
document.getElementById("message").innerHTML = "";
}
}
function goPage(){
var nowPage = document.getElementById("initValue").value;
if(nowPage==""){
document.getElementById("message").innerHTML = "对不起,页面编号必须填写";
}else{
test.gotoPage(nowPage,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>&nbsp;&nbsp;
<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 pageSizeSize)
{
return dao.nextInfo(nowpager,pageSizeSize);
}
//上一页的数据
@SuppressWarnings("unchecked")
public List goup(int nowpager,int pageSizeSize)
{
return dao.goupInfo(nowpager,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 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,page);
return mmm;
}

@SuppressWarnings("unchecked")
public List gotoPage(int nowpager,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);
return mmm;
}

@SuppressWarnings("unchecked")
public List nextInfo(int nowpager,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);
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; } }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读