使用ajax、pageHelpler分页插件、利用json数据特性实现分页查询

注:博主用到了Bootstrap 框架美化页面
页面代码
 1 <table class="table table-hover">
 2             <thead>
 3         <tr>
 4             <td>id</td>
 5             <td>name</td>
 6             <td>phone</td>
 7             <td>emp_sex</td>
 8             <td>emp_post</td>
 9             <td>emp_status</td>
10             <td>emp_indate</td>
11             <td>emp_outdate</td>
12             <td>emp_other</td>
13             <td>操作</td>
14         </tr>
15             </thead>
16             <tbody id="ok">
17 
18             </tbody>
19         </table>
20         <!--当前页 总页数 总记录数 -->
21         <p id="pagehelp"></p>
22  
23         <!-- 分页按键 -->
24         <nav aria-label="Page navigation">
25         <ul id="jbgao" class="pagination">
26 
27         </ul>
28         </nav>

在加载jsp页面时发送请求得到数据
  1 <script type="text/javascript">
  2     $(function() {
  3                 $.ajax({
  4                     type : "POST",
  5                     url : "sdf/test",
  6                     data : "",
  7                     success : function(result) {
  8                         //alert(result.returnData.keys[1].empId);
  9                         //成功调用。。。
 10                         showAll(result);
 11                         showing(result);
 12                     }
 13                 });
 14             });
 15 //博主是在首次插入时数据给每个td一个id然后用一个loadXMLDoc()函数通过每个id替换之前的数据,博主这里有点脱裤子放屁了
 16         function showAll(result) {
 17         //可以不加id不写loadXMLDoc()直接在这写一个empty()清空上一次的数据代码更可观
 18         var test=0;
 19         $.each(result.returnData.keys.list, function(index, item) {
 20         var ok = $("<td></td>").attr("id","myid"+test+"").append(item.empId);
 21         var empName = $("<td></td>").attr("id","myname"+test+"").append(item.empName);
 22         var empPhone = $("<td></td>").attr("id","myPhone"+test+"").append(item.empPhone);
 23         var empSex = $("<td></td>").attr("id","mySex"+test+"").append(item.empSex==1?"女":"男");
 24         var empPost = $("<td></td>").attr("id","myPost"+test+"").append(item.empPost);
 25         var empstatus = $("<td></td>").attr("id","myStatus"+test+"").append(item.empStatus);
 26         var empIndate = $("<td></td>").attr("id","myIndate"+test+"").append(item.empIndate);
 27         var empOutdate = $("<td></td>").attr("id","myOutdate"+test+"").append(item.empOutdate);
 28 var show = $("<tr></tr>").append(ok).append(empName).append(empPhone).append(empSex).append(empPost)
 29 .append(empstatus).append(empIndate).append(empOutdate).appendTo("#ok");
 30                     test++;
 31                 });     
 32             }
 33             function showing(result) {
 34             var ing=result.returnData.keys.pageNum;
 35             $("#pagehelp").text("当前第" +ing+ "页,总共" + result.returnData.keys.pageSize
 36                 + "页,总记录数" + result.returnData.keys.total);
 37             showzhuta(result);
 38             }
 39 
 40             function showzhuta(result){
 41                 $("#jbgao").empty();  
 42                 //首页
 43         var so=$("<li></li>").append($("<a></a>").append("首页")).appendTo("#jbgao");
 44                 so.click(function(){
 45                     loadXMLDoc(1);  
 46                 });
 47                 //上一页
 48         var next=$("<li></li>").append($("<a></a>").append("<<")).appendTo("#jbgao");
 49                 if(result.returnData.keys.hasPreviousPage==true){
 50                 next.click(function(){
 51                     loadXMLDoc(result.returnData.keys.pageNum - 1);
 52                 });
 53                 }
 54             //显示当前状态
 55     $.each(result.returnData.keys.navigatepageNums, function(index, item) {
 56 var dao=$("<li></li>").append($("<a></a>").append(item)).appendTo("#jbgao");
 57                         dao.click(function(){
 58                             loadXMLDoc(item);   
 59                         });
 60                     });
 61         //下一页
 62 var next=$("<li></li>").append($("<a></a>").attr("href","#").append(">>")).appendTo("#jbgao");
 63         if(result.returnData.keys.hasNextPage==true){
 64         next.click(function(){
 65             loadXMLDoc(result.returnData.keys.pageNum + 1);
 66         });
 67         }
 68                 //尾页
 69     var ho=result.returnData.keys.pages;
 70 var ing=$("<li></li>").append($("<a></a>").append("尾页")).appendTo("#jbgao");
 71                 ing.click(function(){
 72                     loadXMLDoc(ho); 
 73                         });
 74                 }
 75 
 76             /*
 77              * 定义替换的方法
 78              */
 79             function loadXMLDoc(vi) {
 80                 $.ajax({
 81                     type : "POST",
 82                     url : "sdf/test?pn="+vi+"",
 83                     data : "",
 84                     success : function(result) {
 85                         var tests = 0;
 86         $.each(result.returnData.keys.list, function(index,item){
 87                     $("#myid" + tests + "").html(item.empId);
 88                     $("#myname" + tests + "").html(item.empName);
 89                     $("#myPhone" + tests + "").html(item.empPhone);
 90     $("#mySex" + tests + "").html(item.empSex == 1 ? "女" : "男");
 91                     $("#myPost" + tests + "").html(item.empPost);
 92                     $("#myStatus" + tests + "").html(item.empStatus);
 93                 $("#myIndate" + tests + "").html(item.empIndate);
 94                 $("#myOutdate" + tests + "").html(item.empOutdate);
 95                             tests++;
 96                         });
 97                         showing(result);
 98 
 99                     }
100                 });
101             }
102 </script>           

Controller类

 1 import java.util.List;
 2 
 3 import javax.servlet.http.HttpServletRequest;
 4 
 5 import org.springframework.beans.factory.annotation.Autowired;
 6 import org.springframework.stereotype.Controller;
 7 import org.springframework.web.bind.annotation.RequestMapping;
 8 import org.springframework.web.bind.annotation.RequestParam;
 9 import org.springframework.web.bind.annotation.ResponseBody;
10 import org.springframework.web.servlet.ModelAndView;
11 
12 import com.budo.beancla.Employee;
13 import com.budo.beancla.Performance;
14 import com.budo.run.Test;
15 import com.budo.service.Serlet;
16 import com.github.pagehelper.PageHelper;
17 import com.github.pagehelper.PageInfo;
18 
19 @Controller
20 @RequestMapping("/sdf")
21 public class Context {
22     Employee em = new Employee();
23 
24     @Autowired
25     Serlet ser;
26     //要使用ResponseBody注解
27     @RequestMapping("/test")
28     @ResponseBody
29     public Test test(@RequestParam(value = "pn", defaultValue = "1") Integer ge) {
30         PageHelper.startPage(ge, 3);
31         System.out.println("yes");
32         //查询出数据
33         List<Employee> list = ser.sele();
34         PageInfo page=new PageInfo(list,3);
35         //将数据返回
36         return Test.success().add("keys", page);
37     }
38     
39 }

Test类json数据封装

 1 import java.util.HashMap;
 2 import java.util.Map;
 3 
 4 public class Test {
 5     // 666即成功,444即失败
 6         private int code;
 7         // 提示信息
 8         private String msg;
 9         // 服务端要返回到客户端的数据
10         private Map<String, Object> ReturnData = new HashMap<String, Object>();
11 
12         /**
13          * 自定义一个简单的成功方法
14          * @return
15          */
16         public static Test success(){
17             Test msg = new Test();
18             msg.setCode(666);
19             msg.setMsg("执行成功!");
20             return msg;
21         }
22         /**
23          * 自定义一个简单的失败方法
24          * @return
25          */
26         public static Test fail(){
27             Test msg = new Test();
28             msg.setCode(444);
29             msg.setMsg("执行失败!");
30             return msg;
31         }
32         /**
33          * 自定义一个添加返回数据的方法
34          * @return
35          */
36         public Test add(String arg0,Object arg1){
37             this.getReturnData().put(arg0, arg1);
38             return this;
39         }
40         public Map<String, Object> getReturnData() {
41             return ReturnData;
42         }
43         public void setReturnData(Map<String, Object> returnData) {
44             ReturnData = returnData;
45         }
46         public int getCode() {
47             return code;
48         }
49         public void setCode(int code) {
50             this.code = code;
51         }
52 
53         public String getMsg() {
54             return msg;
55         }
56 
57         public void setMsg(String msg) {
58             this.msg = msg;
59         }
60 }

 

posted @ 2018-01-17 11:36  买个棉花  阅读(27)  评论(0)    收藏  举报