JQueryPagination分页插件,ajax从struts请求数据

2017-07-16

学完了struts,做了个关于分页的小例子,用到了JQuery分页插件Pagination,先贴下插件下载地址

http://www.jq22.com/jquery-info13734

插件作者对于参数讲解的不够详细,琢磨了半天才明白怎么用,不多说,直接代码

1.客户端(jsp页面)

 1 /*这些css为了控制生成的数据和分页的li标签的位置*/
 2     a {
 3         text-decoration:none;
 4         color:black;
 5         font-weight: bold;
 6         text-align:center;
 7     }
 8     table {
 9         width:500px;
10         height:300px;
11         text-align: center;
12     }
13     #table {
14         position:relative;
15         top:100px;
16     }
17     #page {
18         height:50px;
19         text-align:center;
20         position:relative;
21         top:100px;
22     }
23     #page li {
24         position:relative;
25         left:450px;
26     }
27
28     </style>

css部分

    <!--一定要引入样式表和js文件-->
    <link rel="stylesheet" type="text/css" href="pagination/page.css">
    <script type="text/javascript" src="pagination/jquery.min.js"></script>
    <script type="text/javascript" src="pagination/page.js"></script>      
 1    <div id="table"  align="center"></div>  <!--用于显示数据的div-->
 2   <div id="page" class="page"></div>  <!--div的class要设置成引入的css文件中的.page-->
 3
 4    <script type="text/javascript">
 5                 var url ="${pageContext.request.contextPath}/show_list";
 6                 var $table = $("<table border=‘2px‘ id=‘a‘ width=‘300px‘ height=‘200px‘></table>");
 7                 var $tr = $("<tr display=‘none‘></tr>");
 8                 var $td = $("<td>编号</td><td>姓名</td><td>薪水</td><td>部门</td><td>操作</td>");
 9                 $tr.append($td);
10                 $table.append($tr);
11                 var datas = null;      //datas,options一定要设置为全局变量,发现不设置成全局,没法使用插件
12                 var options = null;
13                 var pagelistcount = 6; //每页显示数据个数
14             //    var maxentries = 50;   //要显示的数据总量,未进行传递
15                 $.ajax({
16                     url:url,
17                     type:"GET",
18                     data:null,
19                     dataType:"json",
20                     success:function(backdata) {
21                         datas = backdata;
22                         var a =eval(backdata);
23                         options={
24                                 "id":"page",     //----显示页码的元素(数据放在哪里)---->上面的div标签
25                                 "data":datas,   //-----返回的数据---->json形式
26                                 "maxshowpageitem":10,//-----最多显示的页码个数
27                                 "pagelistcount":pagelistcount,//-----每页显示数据个数,下面的callback是每个分页插件都有的回调函数
28                                 "callBack":function(result){  //----result表示处理好的数据集,比如你设置了pagelistcount为6,那么result就有6条数据
29                                  $("#table").append($table);
30                                 //遍历生成表格并插入数据
31                                 $.each(result,function(index,emp) {
32                                         $tr = $("<tr></tr>");
33                                         $table.append($tr);
34                                         for(var i=0; i<=4; i++) {
35                                             $td = $("<td></td>");
36                                             $tr.append($td);
37                                         }
38                                         var $tr = $("table tr");
39                                         //解决多生成表格的问题--->总数50,每页6条,最后一页不足6条,这样解决多生成表格的问题
40                                         if($tr.size() > result.length) {
41                                             $("table tr:gt("+ result.length + ")").remove();
42                                         }
44                                         var $td = $tr.eq(index+1).find("td");
45                                         var info = $(result).get(index);
46                                         var $empId = $td.eq(0).text(info.empId);
47                                         var $empName = $td.eq(1).text(info.empName)
48                                         var $salary = $td.eq(2).text(info.salary);
49                                         var $dept = $td.eq(3).text(info.dept.deptName);
50                                         var $action = $td.eq(4).html("<a href=${update}?empId=" + info.empId+">修改</a>&nbsp;&nbsp;<a id =‘del" + info.empId + "‘ href=‘#‘>删除</a>");
51                                         $("#del" + info.empId).click(function () {
52                                             if(window.confirm("确定要删除吗?删除之后无法恢复!!!")) {
53                                                 $(this).attr("href","${delete}?empId=" + info.empId);
54                                             }
55                                         })
56                                     });
57                                 }
58                             };
59                          page.init(datas.length,1,options); //执行分页,1表示加载完成后显示为第一页
60                     }
61                  });
62       </script>
63
64   </body>
65
66   

2.服务器

使用了struts并且返回的数据是json格式所以要引入以下jar文件

struts部分
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang3-3.1.jar
freemarker-2.3.19.jar
javassist-3.11.0.GA.jar
ognl-3.0.5.jar
struts2-core-2.3.4.1.jar
xwork-core-2.3.4.1.jar
json部分
struts2-json-plugin-2.3.4.1.jar
json-lib-2.3-jdk15.jar
commons-beanutils-1.7.0.jar
commons-collections-3.1.jar
ezmorph-1.0.3.jar
commons-logging-1.1.1.jar

如果采用用户库的方式添加的话要注意把jar包部署到tomcat中

项目(右击)--->buildPath--->configure build path---->搜索deployment Assembly--->add--->java build path entries

或者直接在webRoot下的lib放jar包然后添加到项目中即可(变成奶瓶!!才可以)

如何让struts返回json文本?

1.包继承 json-default,

2.result中  type="json",params中写好要转换的对象

3.action中一定要为要转换的对象设置get方法,并且要转换的对象不能为null!!

配置文件

  <package name="xxxx" extends="json-default">
    <action name="show_*" class="employeeAction" method="{1}">
           <result name="list" type="json">
                <param name="root">listEmployees</param>  <!--name="root"获得根级对象,具体自行百度-->
           </result>
    </action>
            

action

  private List<Employee> listEmployees;
    //使用json时只需设置get方法
    public List<Employee> getListEmployees() {
        return listEmployees;
    }
    /**
     * 员工列表展示
     * @return
     */
    public String list() {
        listEmployees = employeeService.getAll();//注意赋值
        return "list";
    }
    

当然除了利用struts返回json也可以直接写个servlet返回数据,具体不再赘述

本人新手一枚,多有不足还望海涵,批评指正!!!

时间: 2024-10-28 02:10:28

JQueryPagination分页插件,ajax从struts请求数据的相关文章

JqueryPagination 分页插件使用说明

JqueryPagination是个简单轻量级的分页插件,使用起来很容易,只要初始化一个实例,并设置总数量.翻页回调函数.其它参数就可以实现无刷新分页功能了 1 首先引入相关js文件: <link href="Scripts/pagination.css" rel="stylesheet" type="text/css" /> <script src="../Scripts/jquery-1.7.2.min.js&qu

ajax从struts2请求数据的返回形式

这篇随笔算是接上篇的数据请求返回,上一篇关于分页用的返回的数据形式是json,http://www.cnblogs.com/tele-share/p/7192206.html这次主要探讨ajax从struts接收html和io流的数据形式. 方式一:接收html格式的数据 jsp页面 1 <!-- ajax从struts请求拼接完成的html --> 2 <script type="text/javascript"> 3 var url = "${pa

Bootstrap分页插件ajax返回数据,工具类的编写

使用Bootstrap分页插件时,需要返回指定的参数,这样Bootstrap才能够识别 需要引入的css: <!-- boostrap table --> <link href="css/bootstrap-table.min.css" rel="stylesheet" /> 需要引入的js: 1 <!-- boostrap table --> 2 <script type="text/javascript&quo

Bootstrap Paginator分页插件+ajax 实现动态无刷新分页

之前做分页想过做淘宝的那个,但是因为是后台要求不高,就Bootstrap Paginator插件感觉还蛮容易上手,所以就选了它. Bootstrap Paginator分页插件下载地址: DownloadVisit Project in GitHub 1.这是需要分页的页面放的 js函数: [javascript] view plaincopy <span style="font-size:14px;">function paging(page){ $.ajax({ typ

AJAX跨域请求数据

由于浏览器的同源策略 ajax请求不可以接收到请求响应回来的数据 请求数据需要调用浏览器的内置构造函数 XMLHttpRequest() 进行 实例对象 var xhr = new XMLHttpRequest(); 注意点 在IE8之前支持的 ActiveXobject("Microsoft.XMLHTTP");  记住要进行兼容处理哦  在这里我就不写了 通过该对象进行获取 获取数据的四种状态  xhr.readyState 该属性保存着请求数据的几种状态 1.xhr.open(请

MVC 分页插件+ajax分页

分页样式插件http://www.jq22.com/plugin/2705 前台引用: 1 <script src="~/kkpager/lib/jquery-1.8.2.min.js"></script> 2 <script src="~/kkpager/src/kkpager.js"></script> 3 <link href="~/kkpager/src/kkpager_blue.css&quo

ajax 跨域请求数据 jsonp 示例

1.请求页面 <!doctype html><head><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jsonp调用方法</title></head><body> <script type="text/javasc

Select2插件ajax方式加载数据并刷新页面数据回显

今天在优化项目当中,有个要在下拉框中搜索数据的需求:最后选择使用selec2进行开发: 官网:http://select2.github.io/ 演示: 准备工作: 文件需要引入select2.full.js.select2.min.css(4.0.1版本)和jquery.1.8.3及以上 注意:最新版本的select2如果引用的jquery版本较低的话,某些功能无法正常使用. HTML代码 <select id="c01-select" class="select2&

Ajax简单的请求数据以表格的形式渲染到页面

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>长安汽车</title> <meta name="viewport" content="width=device-width, initial-sc