2017-07-16

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

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

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

1.客户端(jsp页面)

 /*这些css为了控制生成的数据和分页的li标签的位置*/
a {
text-decoration:none;
color:black;
font-weight: bold;
text-align:center;
}
table {
width:500px;
height:300px;
text-align: center;
}
#table {
position:relative;
top:100px;
}
#page {
height:50px;
text-align:center;
position:relative;
top:100px;
}
#page li {
position:relative;
left:450px;
} </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>
    <div id="table"  align="center"></div>  <!--用于显示数据的div-->
<div id="page" class="page"></div> <!--div的class要设置成引入的css文件中的.page--> <script type="text/javascript">
var url ="${pageContext.request.contextPath}/show_list";
var $table = $("<table border='2px' id='a' width='300px' height='200px'></table>");
var $tr = $("<tr display='none'></tr>");
var $td = $("<td>编号</td><td>姓名</td><td>薪水</td><td>部门</td><td>操作</td>");
$tr.append($td);
$table.append($tr);
var datas = null; //datas,options一定要设置为全局变量,发现不设置成全局,没法使用插件
var options = null;
var pagelistcount = 6; //每页显示数据个数
// var maxentries = 50; //要显示的数据总量,未进行传递
$.ajax({
url:url,
type:"GET",
data:null,
dataType:"json",
success:function(backdata) {
datas = backdata;
var a =eval(backdata);
options={
"id":"page", //----显示页码的元素(数据放在哪里)---->上面的div标签
"data":datas, //-----返回的数据---->json形式
"maxshowpageitem":10,//-----最多显示的页码个数
"pagelistcount":pagelistcount,//-----每页显示数据个数,下面的callback是每个分页插件都有的回调函数
"callBack":function(result){ //----result表示处理好的数据集,比如你设置了pagelistcount为6,那么result就有6条数据
$("#table").append($table);
//遍历生成表格并插入数据
$.each(result,function(index,emp) {
$tr = $("<tr></tr>");
$table.append($tr);
for(var i=0; i<=4; i++) {
$td = $("<td></td>");
$tr.append($td);
}
var $tr = $("table tr");
//解决多生成表格的问题--->总数50,每页6条,最后一页不足6条,这样解决多生成表格的问题
if($tr.size() > result.length) {
$("table tr:gt("+ result.length + ")").remove();
}
var $td = $tr.eq(index+1).find("td");
var info = $(result).get(index);
var $empId = $td.eq(0).text(info.empId);
var $empName = $td.eq(1).text(info.empName)
var $salary = $td.eq(2).text(info.salary);
var $dept = $td.eq(3).text(info.dept.deptName);
var $action = $td.eq(4).html("<a href=${update}?empId=" + info.empId+">修改</a>&nbsp;&nbsp;<a id ='del" + info.empId + "' href='#'>删除</a>");
$("#del" + info.empId).click(function () {
if(window.confirm("确定要删除吗?删除之后无法恢复!!!")) {
$(this).attr("href","${delete}?empId=" + info.empId);
}
})
});
}
};
page.init(datas.length,1,options); //执行分页,1表示加载完成后显示为第一页
}
});
</script> </body>

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返回数据,具体不再赘述

还有问题的话后续再进行补充,欢迎批评指正^_^

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

  1. Bootstrap 分页插件 ajax获取数据显示

    Bootstrap 分页插件 ajax获取数据显示 标签(空格分隔): bootstrap 文章的内容是使用bootstrap-paginator进行分页,使用ajax获取后台数据.渲染. 1. 版本 ...

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

    使用Bootstrap分页插件时,需要返回指定的参数,这样Bootstrap才能够识别 需要引入的css: <!-- boostrap table --> <link href=&q ...

  3. JqueryPagination 分页插件使用说明

    JqueryPagination是个简单轻量级的分页插件,使用起来很容易,只要初始化一个实例,并设置总数量.翻页回调函数.其它参数就可以实现无刷新分页功能了 1 首先引入相关js文件: <lin ...

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

    之前做分页想过做淘宝的那个,但是因为是后台要求不高,就Bootstrap Paginator插件感觉还蛮容易上手,所以就选了它. Bootstrap Paginator分页插件下载地址: Downlo ...

  5. Bootstrap Paginator分页插件+ajax

    Bootstrap Paginator分页插件下载地址: DownloadVisit Project in GitHub  Bootstrap分页插件属性介绍: http://www.cnblogs. ...

  6. 关于试用jquery的jsonp实现ajax跨域请求数据的问题

    我们在开发过程中遇到要获取另一个系统数据时,就造成跨域问题,这就是下文要说的解决办法: 先我们熟悉下json和jsonp的区别: 使用AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交 ...

  7. Ajax跨域请求数据实例(JSOPN方式)

    今天在做取消申请的时候遇到了一个跨域ajax提交的问题. 情景是: 系统A是asp.net的站点,其中包括一个取消申请的接口(get方式通过参数提交到系统的某一个页面,然后返回提交成功或失败) 系统B ...

  8. ajax跨域请求数据

    最近开始接触ajax的跨域请求问题,相比网上说的一大堆,我这里就说得比较浅显了. 关于为什么要跨域这个问题,实际的需求是当网站项目部署在一个域名上的时候,分域可以很好地解决网站卡顿问题(拥有多台服务器 ...

  9. 【前端_js】解决ajax跨域请求数据

    1.ajax发送请求必须遵循同源策略,即请求方和相应方的协议头.域名.端口全部一样.只要三者有一个不一样都视为跨域,浏览器出于安全考虑不允许跨域访问. 解决ajax跨域访问的常用方法: a.使用jso ...

随机推荐

  1. 杭电1513Palindrome

    Palindrome Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  2. 2016.3.17__CSS3动画__第十一天

    CSS3动画 假设您认为这篇文章还不错,能够去H5专题介绍中查看很多其它相关文章. 通过 CSS3,我们能够创建动画,这能够在很多网页中取代动绘图片.Flash 动画以及 JavaScript. 今日 ...

  3. 怎样提升 RailS 应用的性能?

    Is rails slow? 「铁路非常慢」,你或许听过这个笑话,那么我们的 Rails 框架呢? 假设说 Rails 慢,那么怎样提升 Rails APP 的性能就成了开发人员们最关注的问题. 或许 ...

  4. vue的组件和生命周期

    Vue里组件的通信 通信:传参.控制.数据共享(A操控B做一个事件) 模式:父子组件间.非父子组件 父组件可以将一条数据传递给子组件,这条数据可以是动态的,父组件的数据更改的时候,子组件接收的也会变化 ...

  5. 快速序列化组件MessagePack介绍

    简介 MessagePack for C#(MessagePack-CSharp)是用于C#的极速MessagePack序列化程序,比MsgPack-Cli快10倍,与其他所有C#序列化程序相比,具有 ...

  6. redis 报Operation against a key holding the wrong kind of value警告的解决方法

    WRONGTYPE Operation against a key holding the wrong kind of value github:https://github.com/antirez/ ...

  7. anaconda不能安装python的包问题

    在点了n次,重启应用多次之后,安装包(apply)之后还是没有反应,依然心平气和的我突然想到用管理员模式打开,结果就可以愉快的装包了,估计创建新的环境也是要管理员打开的.

  8. mybatis关联

    title: mybatis关联 date: 2017-12-18 18:00:30 tags: - [mybatis] categories: - [编程] - [开发工具] permalink: ...

  9. 自学Zabbix3.8.3-可视化Visualisation-Screens

    自学Zabbix3.8.3-可视化Visualisation-Screens 在Zabbix屏幕上,您可以将来自不同来源的信息分组,以快速浏览单个屏幕.构建屏幕非常简单直观.本质上,屏幕是一个表.您可 ...

  10. KendoUI 基础:Grid 绑定template展示

    Grid 绑定template展示 <div id="TodayEditorGrid" style="margin:0 10px"></div ...