一、以从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> <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; } } (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|