0 这是一篇我在初学习过程中,遇到的动态数据分页显示的问题,前台采用Ajax传给后台,后台在访问数据库取出分页数据再转换为json格式传递给前台,前台再解析显示到表格中。在此写出我在做的过程中遇到的问题,可以让其他人少走弯路。 前台方面会用到分页的插件,这是传送地址,http://www.jq22.com/jquery-info15943,下载下来,这插件是没有数据交互的,我们要做的就是把数据从数据库取出来,转换成json再传给js。 然后开始,然后把下载下来的插件里面的文件都复制到项目里.然后开始写后台代码: 这是index实体类,list存放的是从数据库得到的是分页数据集。public class index {

//已知数据

private int pageNum;//当前页

private int pageSize;//每页显示的数据条数

private int totalRecord;//总记录条数

private int totalPage;//总页数

/*

* 开始索引,也就是我们在数据库中要从第几行数据开始拿,有了

* startIndex和pageSize,就知道了limit语句的两个数据,

* 就能获得每页需要显示的数据了;

*/

private int startIndex;

private List list;

public index(int pageNum,int pageSize,int totalRecord){

this.pageNum=pageNum;

this.pageSize=pageSize;

this.totalRecord=totalRecord;

if(totalRecord%pageSize==0){

this.totalPage=totalRecord/pageSize;

}else{

this.totalPage=totalRecord/pageSize+1;

}

this.startIndex=(pageNum-1)*pageSize;

}

public index() {

// TODO Auto-generated constructor stub

}

public int getPageNum() {

return pageNum;

}

public void setPageNum(int pageNum) {

this.pageNum = pageNum;

}

public int getPageSize() {

return pageSize;

}

public void setPageSize(int pageSize) {

this.pageSize = pageSize;

}

public int getTotalRecord() {

return totalRecord;

}

public void setTotalRecord(int totalRecord) {

this.totalRecord = totalRecord;

}

public int getTotalPage() {

return totalPage;

}

public void setTotalPage(int totalPage) {

this.totalPage = totalPage;

}

public int getStartIndex() {

return startIndex;

}

public void setStartIndex(int startIndex) {

this.startIndex = startIndex;

}

public List getList() {

return list;

}

public void setList(List list) {

this.list = list;

}

}这是前台调用的类。那个判断语句if(request.getParameter(“pageNum”)==null)是用来处理第一次进入页面时需要给页面传的得到的数据库的数据总记录条数。 你的表中如果含有外键,就需要写这两句,这两句的作用就是在转换json时除去这个外键属性,否则在转换的时候会报错。如果你的表中没有外键,就须吧这两句删除。public String json() {

String message="";

loginMessageDaoImpl dao=new loginMessageDaoImpl();

List list=new ArrayList();

index index;

JSONArray array=new JSONArray();

if(request.getParameter("pageNum")==null){

index=new index(1,15,dao.allSize());

JsonConfig config = new JsonConfig();

config.setExcludes(new String[]{"person"});//除去person属性

index.setList(dao.All(index.getStartIndex(), index.getPageSize()));

array=JSONArray.fromObject(index,config);

System.out.println("json:"+array.toString());

request.setAttribute("index", index);

message="success";

}else{

int pageNum=Integer.parseInt(request.getParameter("pageNum"));

int totalRecord=Integer.parseInt(request.getParameter("totalRecord"));

int totalPage=Integer.parseInt(request.getParameter("totalPage"));

index=new index(pageNum,15,totalRecord);

index.setList(dao.All(index.getStartIndex(), index.getPageSize()));

JsonConfig config = new JsonConfig();

config.setExcludes(new String[]{"person"});//除去person属性

array=JSONArray.fromObject(index,config);

System.out.println("json:"+array.toString());

HttpServletResponse response = ServletActionContext.getResponse();

response.setContentType("text/html;charset=UTF-8");

message=null;

try {

response.getWriter().write(array.toString());

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return message;

}

前台方面: 在paging.js里需要改动如下地方: 在handles方法需要添加两个参数,以及ajax的调用方法,url的地址改成你的地址,以及里面的参数信息都改成你的项目你的数据信息。并且在该js中调用handles的方法参数别忘记改。function handles(pageIndex,totalRecord,totalPage) {

lis.removeClass('sel-page').eq(pageIndex - 1).addClass('sel-page');

if (totalPages <= 5) {

that.options.callback(pageIndex);

return false;

}

if (pageIndex >= 3 && pageIndex <= totalPages - 2) distance = (pageIndex - 3) * liWidth;

if (pageIndex == 2 || pageIndex == 1) distance = 0;

if (pageIndex > totalPages - 2) distance = (totalPages - 5) * liWidth;

pageSelect.css('transform', 'translateX(' + (-distance) + 'px)');

pageIndex == 1 ? firstPage.attr('disabled', true) : firstPage.attr('disabled', false);

pageIndex == 1 ? prePage.attr('disabled', true) : prePage.attr('disabled', false);

pageIndex == totalPages ? lastPage.attr('disabled', true) : lastPage.attr('disabled', false);

pageIndex == totalPages ? nextPage.attr('disabled', true) : nextPage.attr('disabled', false);

that.options.callback(pageIndex);

var xmlhttp;

var url="test!json?pageNum="+pageIndex+"&totalRecord="+ totalRecord+"&totalPage="+totalPage;

if (window.XMLHttpRequest) {

// code for IE7+, Firefox, Chrome, Opera, Safari

xmlhttp = new XMLHttpRequest();

} else {// code for IE6, IE5

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

}

xmlhttp.onreadystatechange = function() {

if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

var data=xmlhttp.responseText;

var json=eval('{'+data+'}');

var list=json[0].list;

$("#dataGridTableJson tbody").html("");

for(var Logintimes in list){

$("#dataGridTableJson tbody").append('

'

+'

'+list[Logintimes].id+''

+'

'+list[Logintimes].logintime+''

+'

'+list[Logintimes].ipmessage+''

+'

'+list[Logintimes].loginip+''

+'

');

//alert(list[Logintimes].logintime);

}

}

};

xmlhttp.open("POST", url, false);

xmlhttp.send();

}这就是一个完整的分页技术,可能有些地方还总结的不太好 版权声明:本文章为原创文章,未经作者允许禁止转载引用,转载引用时请注明来源 http://www.b0c0.com/分页技术小白也能看懂从后台传json到前台解析显示\

0

java后台分页插件怎么写_Java分页技术(从后台传json到前台解析显示)相关推荐

  1. java开发展望怎么写_Java开发趋势:2019年展望

    java开发展望怎么写 在这篇文章中,我们将发表一篇有关2019年Java开发趋势的综合文章.您是否知道Java自上世纪问世以来,现在已在100亿个设备上运行 ? 它是数十年来最受欢迎的编码语言,但是 ...

  2. java事件处理过程分布写_Java 9中的进程处理

    java事件处理过程分布写 一直以来,用Java管理操作系统进程都是一项艰巨的任务. 这样做的原因是可用的工具和API较差. 老实说,这并非没有道理:Java并非旨在达到目的. 如果要管理OS进程,则 ...

  3. Java Web学习笔记08:分页技术

    文章目录 一.分页技术 1.软分页 2.硬分页 (1)MySQL分页方式:通过关键字LIMIT实现

  4. java后台传一个对象到前台_前台判断对象中的一个布尔值_springMVC面试题

    1:springMVC工作原理 springMVC架构.png [用户发送请求到前端控制器dispatcherservlet,前端控制器接收到请求之后调用处理器映射器,根据请求url找到具体的处理器, ...

  5. java后台传一个对象到前台_前台判断对象中的一个布尔值_前后台分离的项目中,如何优雅的传输boolean类型的参数...

    前言:需求 这是一个Spring + Angular前后台分离的项目,目前有一个查看作业列表的功能,并且已经设置了分页和几个查询参数,如图. 现在需要增加一个已评阅和未评阅的查询功能. Work实体的 ...

  6. sscom 中文显示 乱码_SSM框架:解决后台传数据到前台中文乱码问题,使用@ResponseBody返回json 中文乱码 Web程序 - 贪吃蛇学院-专业IT技术平台...

    场景: 在实际运用场景中,当前台发起请求后,我们需要从后台返回数据给前台,这时,如果返回的数据中包含中文,则经常会出现在后台查询出来都是好好,但是传输回去就莫名的乱码了,而且,我们明明已经在 web. ...

  7. java 类似 黑针探针_java探针技术I——如何写一个 java agent

    开发工具 Intellij Idea 2019 maven 3 开始吧 java 探针不依赖于任何框架,所以首先我们创建一个 maven 项目即可. 创建启动类 新增一个 SartUp 的启动类 pu ...

  8. java 搜索业务怎么写_Java项目实战第11天:搜索功能的实现

    原标题:Java项目实战第11天:搜索功能的实现 今天是刘小爱自学Java的第110天. 感谢你的观看,谢谢你. 话不多说,开始今天的学习: 事先说明:关于今天的搜索功能实现. 并没有使用到倒排索引这 ...

  9. java web 插件式开发_Java Web 后台开发效率提高:插件讲解

    上一篇文章 关于提高效率 介绍的后台框架应用 现在介绍下其中插件的具体功能,本文以某个具体插件来详细说明,选取 插件 " 过滤 " 用于详细讲解具体功能,以及框架数据流的走向过滤插 ...

最新文章

  1. opencv cuda使用笔记
  2. 网站权重增长缓慢,优化技巧是关键!
  3. 管道符、重定向与环境变量
  4. [vue] 怎么在vue中使用插件?
  5. go语言 gosched
  6. ckeditor编辑的使用方法
  7. 2021 MetaCamp程序设计大赛线上资格赛 7-2 心情故事
  8. jooq spring mysql_【中级篇】详细讲解使用SpringBoot + Jooq整合(一)
  9. Python库的下载及导入使用教程
  10. LibreCAD的基本使用
  11. 关于一些初级ACM竞赛题目的分析和题解(七)。
  12. access使用相对路径
  13. 正确去掉Win7快捷方式小箭头
  14. OpenSSL Cipher 加密解密 Ruby on Rails
  15. GSM Hacking:如何对GSM/GPRS网络测试进行测试
  16. 量子力学奇妙之旅-算符和电子自旋
  17. 计算机辅助绘图 选修,计算机辅助绘图(CAD)教学大纲.doc
  18. APK部署手机上出现闪退现象
  19. csdn博客名字修改
  20. 2019广东申论县级下水文——优化营商环境,促进经济高速发展

热门文章

  1. Linux下stat + 文件名后, Access,Modify,Change的含义
  2. 文件夹内多文件上传到服务器
  3. tp5.0 queue 队列操作
  4. 有关C/C++中,表达式计算顺序的问题,以及表达式内部变量“副作用”问题(转)...
  5. js 获取URL后面的参数
  6. 3D中的OBJ文件格式详解(转载)
  7. sql server 2008 修改sa密码
  8. 常见http状态码说明(转)
  9. ZooKeeper集群环境安装与配置
  10. php比较长的configure