博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springMVC+JSP+jQuery做分页查询示例
阅读量:4186 次
发布时间:2019-05-26

本文共 4914 字,大约阅读时间需要 16 分钟。

单独做一个分页JSP,代码如下:

<%@ page  contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>			首页		上一页 				尾页		总页数(1)		当前页(1)	

JSP页面对应的js代码:

$(document).ready(function(){	$("#pageId").on('click',	'.pre,.next,.first,.last',jumpToPage);});//设置分页function setPagination(pageObject){ //1.初始化总页数 $(".pageCount").html("总页数("+pageObject.pageCount+")"); //2.初始化当前页的页码 $(".pageCurrent").html("当前页("+pageObject.pageCurrent+")"); //3.在pageId对应的对象上绑定总页数 //data函数用于以key/value的方式在对象上绑定数据 $("#pageId").data("pageCount",		 pageObject.pageCount); //4.在pageId对象的对象上绑定当前页面值 $("#pageId").data("pageCurrent",pageObject.pageCurrent);}//定义一个函数,通过此函数实现页面的跳转function jumpToPage(){	//获得点击对象上class属性对应的值,根据此值	//判定具体点击的是哪个对象(例如上一页,下一页)	var clazz=$(this).attr("class");	//获得pageId对象上绑定的pageCurrent对应的值	var pageCurrent=$('#pageId').data("pageCurrent");	//获得pageId对象上绑定的pageCount对应的值	var pageCount=$('#pageId').data("pageCount")	//根据class属性的值判断点击的是否是上一页	if(clazz=='pre'&&pageCurrent>1){		pageCurrent--;	}	//判断点击的是否是下一页	if(clazz=="next"&&pageCurrent

对页面做数据显示的js

/*异步(ajax)加载服务端数据*/function doGetObjects(){		//1.定义访问项目信息的url	var url="project/doFindPageObjects.do";	//2.获取表单数据(查询时用)	var params=getQueryFormData();	//3.动态设置分页页码数据	var pageCurrent=$('#pageId').data("pageCurrent");	if(!pageCurrent)pageCurrent=1;	params.pageCurrent=pageCurrent;	//4.发起异步ajax请求{name:"",valid:"",pageCurrent:1}	$.get(url,params,function(result){//result-->JsonResult-->{}		debugger		//console.log(result);		if(result.state==1){		  //设置当前页数据		  setTableBodyRows(result.data.list);		  //设置分页信息(setPagination方法在page.js中)		  //console.log(result.pageObject);//undefined		  setPagination(result.data.pageObject);		}else{		  alert(result.message);		}	});

java页面对象代码如下:

package cn.tedu.ttms.common.web;import java.io.Serializable;/**封装具体的分页信息*/public class PageObject implements Serializable{	private static final long serialVersionUID = -8753809986545361268L;	/**当前页*/	private int pageCurrent=1;	/**每页最多能显示的记录数*/	private int pageSize=2;	/**总记录数*/	private int rowCount;	/**上一页的最后一条记录位置	 * 对应:limit startIndex,pageSize;	 */	private int startIndex;	public int getPageCurrent() {		return pageCurrent;	}	public void setPageCurrent(int pageCurrent) {		this.pageCurrent = pageCurrent;	}	public int getPageSize() {		return pageSize;	}	public void setPageSize(int pageSize) {		this.pageSize = pageSize;	}	public int getRowCount() {		return rowCount;	}	public void setRowCount(int rowCount) {		this.rowCount = rowCount;	}	/**计算总页数*/	public int getPageCount() {//pageCount	  	int pages = rowCount/pageSize;    	if(0 != rowCount%pageSize) {    		pages +=1;    	}        return pages;	}	public int getStartIndex() {		return startIndex;	}	public void setStartIndex(int startIndex) {		this.startIndex = startIndex;	}}

controller中的代码:

@RequestMapping("doFindPageObjects")	@ResponseBody	public JsonResult doFindPageObjects(			String name,			Integer valid,			Integer pageCurrent){		     //state		     //message		     //data		 Map
map=projectService .findPageObjects(name,valid,pageCurrent); return new JsonResult(map);

service中的代码:

@Override	public Map
findPageObjects( String name, Integer valid, Integer pageCurrent) { //1.验证参数的有效性 if(pageCurrent==null||pageCurrent<1) throw new ServiceException("参数值无效,pageCurrent="+pageCurrent); //2.获取当前页数据 //2.1 计算startIndex的值 int pageSize=2; int startIndex=(pageCurrent-1)*pageSize; //2.2 根据startIndex的值获取当前页数据 List
list= projectDao.findPageObjects( name, valid, startIndex, pageSize, "createdTime"); //3.获取总记录数(根据此值计算总页数) int rowCount= projectDao.getRowCount(name,valid); PageObject pageObject=new PageObject(); pageObject.setRowCount(rowCount); pageObject.setPageSize(pageSize); pageObject.setPageCurrent(pageCurrent); pageObject.setStartIndex(startIndex);//可选 //4.封装查询和计算结果到map对象 //1)HashMap底层结构?(数组+链表+红黑树)-->JDK1.8 //2)HashMap是否线程安全?(不安全,多线程并发访问) //3)HashMap是否能保证添加元素的有序性(不能, //假如希望保证有序性可以选择LinkedHashMap)? //4)HashMap在并发场景下如何使用?(将其转换为同步集合或者 //直接使用ConcurrentHashMap) Map
map= new HashMap
(); map.put("list", list); map.put("pageObject",pageObject); return map; }

dao层:

List
findPageObjects( @Param("name")String name, @Param("valid")Integer valid, @Param("startIndex")int startIndex, @Param("pageSize")int pageSize, @Param("orderBy")String orderBy); /**获取表中记录的总行数,我们要根据这个结果计算总页数*/ int getRowCount( @Param("name")String name, @Param("valid")Integer valid);

mysql中的mapper:

    

oracle中mapper:

		

 代码简单易懂适合新手学习,可以根据自己需求以做改动。

转载地址:http://jcfoi.baihongyu.com/

你可能感兴趣的文章
去连接Linux系统上的HDFS
查看>>
在eclipse中远程连接并读取数据
查看>>
处理多个类似表的txt数据
查看>>
两种hadoop集群(CDH的和Apache的))在使用过程中遇到
查看>>
在hadoop的编程中输入输出参数路径的设定
查看>>
PV、UV、IP的区别
查看>>
Hadoop2.2内存参数模板
查看>>
hue的架构图
查看>>
把项目打成jar包,提交执行
查看>>
Apache Oozie是一个用来管理Hadoop任务的工作流调度系统
查看>>
5个JVM命令行标志
查看>>
使用CDH的hadoop里面有对应的组件Pig
查看>>
Cloudera(CDH)的hadoop和Hortonworks(HDP)的的hadoop编译
查看>>
Configuration类
查看>>
hadoop或者hbase集群做停止操作
查看>>
Linux查看日志命令
查看>>
Cygwin是一款优秀的软件
查看>>
1.2版本之后,Nutch专注的只是爬取数据
查看>>
windows平台下,使用nutch,得需要cygwin工具作为其模拟linux的运行环境
查看>>
linux系统设置命令别名的方法
查看>>