SpringMVC+MyBatis+EasyUI 实现分页查询
user_list.jsp
<%@ page import="com.ssm.entity.User" %>
<%@ page pageEncoding="UTF-8" import="java.util.List" %>
<html>
<head>
<%@ include file="meta.jsp" %> <meta charset="UTF-8">
<title>用户列表</title>
<link rel="stylesheet" type="text/css" href="jquery-easyui-1.4/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="jquery-easyui-1.4/themes/icon.css">
<script type="text/javascript" src="jquery-easyui-1.4/jquery.min.js"></script>
<script type="text/javascript" src="jquery-easyui-1.4/jquery.easyui.min.js"></script> </head>
<body>
<table id="dataTable" style="width:400px;height:250px">
<thead>
<tr>
<th data-options="field:'id'">ID</th>
<th data-options="field:'name'">姓名</th>
<th data-options="field:'age'">年龄</th>
</tr>
</thead>
</table>
<a href="/ssm">回到首页</a>
</body>
<script>
$(document).ready(function() {
page_init();
});
function page_init() { $("#dataTable").datagrid({
url: "listUserWithPageForJson", //actionName
queryParams:{pageNumber:2,pageSize:10},//查询参数
loadMsg:"正在加载数据...",
rownumbers:true,//查询结果在表格中显示行号
fitColumns:true,//列的宽度填满表格,防止下方出现滚动条。
pageNumber:2, //初始页码,得在这设置才效果,pagination设置没效果。
pagination: true//分页控件
//如果后端返回的json的格式直接是data={total:xx,rows:{xx}},不需要设置loadFilter了,
//如果有多层封装,比如data.jsonMap = {total:xx,rows:{xx}},则需要在loadFilter处理一下。
/*
loadFilter: function(data){
if(data.jsonMap) {
return data.jsonMap;
}
}*/
}); var p = $('#dataTable').datagrid('getPager');
$(p).pagination({
pageSize: 10,//每页显示的记录条数,默认为10
pageList: [5,10,15,20],//可以设置每页记录条数的列表
beforePageText: '第',//页数文本框前显示的汉字
afterPageText: '页 共 {pages} 页',
displayMsg: '共 {total} 条记录',
onSelectPage: function (pageNumber, pageSize) {//分页触发
find(pageNumber, pageSize);
}
}); } function find(pageNumber, pageSize)
{
$("#dataTable").datagrid('getPager').pagination({pageSize : pageSize, pageNumber : pageNumber});//重置
$("#dataTable").datagrid("loading"); //加屏蔽
$.ajax({
type : "POST",
dataType : "json",
url : "listUserWithPageForJson",
data : {
pageNumber : pageNumber,
pageSize : pageSize
},
success : function(data) {
$("#dataTable").datagrid('loadData',data);
$("#dataTable").datagrid("loaded"); //移除屏蔽
},
error : function(err) {
$.messager.alert('操作提示', '获取信息失败...请联系管理员!', 'error');
$("#dataTable").datagrid("loaded"); //移除屏蔽
}
}); } </script>
</html>
UserController.java
package com.ssm.controller; import com.alibaba.fastjson.JSONObject;
import com.ssm.common.PageModel;
import com.ssm.dao.UserDao;
import com.ssm.entity.JsonEntity;
import com.ssm.entity.User;
import com.ssm.service.UserService;
import com.ssm.tools.BlankUtil;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; /**
* Created by Administrator on 2015-10-15.
*/
@Controller
public class UserController { @Resource
private UserService userService; @RequestMapping(value = "listUserWithPageForJson")
@ResponseBody
public Object listUserWithPageForJson(PageModel pageModel,User user) {
Object jsonObject = null;
try {
pageModel.setQueryObj(user);
userService.listUserWithPage(pageModel);
jsonObject = JSONObject.toJSON(pageModel);
} catch (Exception e) {
e.printStackTrace();
}
return jsonObject;
} }
PageModel.java
package com.ssm.common; import java.util.List; /**
* Created by hbd on 2015/10/22.
*/
public class PageModel<T> { private Integer pageNumber; //当前页数
private Integer pageSize; //一页显示数量
private Integer startRow; //查询起始行
private Integer total; //总记录行数
private List<T> rows; //查询结果数据
private T queryObj; //查询对象 public Integer getStartRow() {
if(pageNumber!=null && pageSize!=null) {
return (pageNumber - 1) * pageSize;
} else {
return 0;
}
} public Integer getPageNumber() {
return pageNumber;
} public void setPageNumber(Integer pageNumber) {
this.pageNumber = pageNumber;
} public Integer getPageSize() {
return pageSize;
} public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
} public Integer getTotal() {
return total;
} public void setTotal(Integer total) {
this.total = total;
} public List<T> getRows() {
return rows;
} public void setRows(List<T> rows) {
this.rows = rows;
} public void setQueryObj(T queryObj) {
this.queryObj = queryObj;
} public T getQueryObj() {
return queryObj;
}
}
UserServiceImpl.java
package com.ssm.service.impl; import com.ssm.common.PageModel;
import com.ssm.dao.UserDao;
import com.ssm.entity.User;
import com.ssm.service.UserService;
import org.springframework.stereotype.Service; import javax.annotation.Resource;
import java.util.List; /**
* Created by Administrator on 2015-10-16.
*/
@Service("userService")
public class UserServiceImpl implements UserService { @Resource
private UserDao userDao; @Override
public User getUserById(int userId) {
return userDao.findUserById(userId);
} @Override
public void listUserWithPage(PageModel<User> pageModel) {
pageModel.setRows(userDao.selectUserListWithPage(pageModel));
pageModel.setTotal(userDao.selectUserCountWithPage(pageModel));
} }
UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC
"-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--这块等于dao接口的实现 namespace必须和接口的类路径一样-->
<mapper namespace="com.ssm.dao.UserDao"> <sql id="sql_count">
SELECT COUNT(*)
</sql>
<sql id="sql_select">
SELECT *
</sql>
<sql id="sql_where">
FROM USER
<where>
<if test="queryObj != null">
<if test="queryObj.name != null and queryObj.name != ''">
AND name like CONCAT('%',#{queryObj.name},'%')
</if>
<if test="queryObj.age != null">
AND age = #{queryObj.age}
</if>
</if>
</where>
</sql> <select id="selectUserListWithPage" parameterType="com.ssm.common.PageModel" resultType="User">
<include refid="sql_select"></include>
<include refid="sql_where"></include>
<if test="pageNumber != null and pageSize!= null">
limit #{startRow},#{pageSize}
</if>
</select> <select id="selectUserCountWithPage" parameterType="com.ssm.common.PageModel" resultType="Integer">
<include refid="sql_count"></include>
<include refid="sql_where"></include>
</select> </mapper>
SpringMVC+MyBatis+EasyUI 实现分页查询的更多相关文章
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(八)mysql中文查询bug修复
写在前面的话 在测试搜索时出现的问题,mysql通过中文查询条件搜索不出数据,但是英文和数字可以搜索到记录,中文无返回记录.本文就是写一下发现问题的过程及解决方法.此bug在第一个项目中点这里还存在, ...
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(八)线上Mysql数据库崩溃事故的原因和处理
前文提要 承接前文<一次线上Mysql数据库崩溃事故的记录>,在文章中讲到了一次线上数据库崩溃的事件记录,建议两篇文章结合在一起看,不至于摸不着头脑. 由于时间原因,其中只讲了当时的一些经 ...
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(四)单元测试实例
日常啰嗦 前一篇文章<Spring+SpringMVC+MyBatis+easyUI整合优化篇(三)代码测试>讲了不为和不能两个状态,针对不为,只能自己调整心态了,而对于不能,本文会结合一 ...
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(十三)数据层优化-表规范、索引优化
本文提要 最近写的几篇文章都是关于数据层优化方面的,这几天也在想还有哪些地方可以优化改进,结合日志和项目代码发现,关于数据层的优化,还是有几个方面可以继续修改的,代码方面,整合了druid数据源也开启 ...
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(一)设计一套好的RESTful API
写在前面的话 看了一下博客目录,距离上次更新这个系列的博文已经有两个多月,并不是因为不想继续写博客,由于中间这段时间更新了几篇其他系列的文章就暂时停止了,如今已经讲述的差不多,也就继续抽时间更新< ...
- Spring+SpringMVC+MyBatis+easyUI整合
进阶篇 Spring+SpringMVC+MyBatis+easyUI整合进阶篇(一)设计一套好的RESTful API 优化篇 Spring+SpringMVC+MyBatis+easyUI整合优化 ...
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(九)Linux下安装redis及redis的常用命令和操作
redis简介 Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis与其他key-value缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存 ...
- Spring+SpringMVC+MyBatis+easyUI整合基础篇
基础篇 Spring+SpringMVC+MyBatis+easyUI整合基础篇(一)项目简介 Spring+SpringMVC+MyBatis+easyUI整合基础篇(二)牛刀小试 Spring+S ...
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十四)Redis缓存正确的使用姿势
作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 简介 这是一篇关于Redis使用的总结类型文章,会先简单的谈一下缓存 ...
随机推荐
- JavaScript基础---语言基础(3)
流程控制语句 学习要点: 1.switch语句 2.for...in语句 3.break和continue语句 4.with语句 ECMA-262规定了一组流程控制语句.语句定义了ECMAScript ...
- COGS8 备用交换机
备用交换机 ★★ 输入文件:gd.in 输出文件:gd.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] n个城市之间有通讯网络,每个城市都有通讯交换机,直接或间 ...
- JQueryEasyUI datagrid框架的基本使用
http://www.jb51.net/article/35348.htm 今天说说这个datagrid框架的基本使用,这个框架一直以来都是大家比较头疼的框架,尤其是Json数据的拼接,后台前台都很重 ...
- vi显示行号
vi显示行号 :set nu 带行号查看,并不改变文件内容:set nonu 取消带行号查看在每个用户的主目录下,都有一个 vi 的配置文件".vimrc&quo ...
- JavaScript中的位置坐标
参考来源 http://www.cnblogs.com/tugenhua0707/p/4501843.html screenX.screenY:浏览器屏幕水平.垂直坐标(相对于浏览器内整个屏幕,包括地 ...
- 字符串匹配的Boyer-Moore算法 详解 加 C# 实现
上一篇文章,我介绍了KMP算法. 但是,它并不是效率最高的算法,实际采用并不多.各种文本编辑器的"查找"功能(Ctrl+F),大多采用Boyer-Moore算法. Boyer-Mo ...
- pthread_exit
当主线程调用pthread_exit时,其余线程不退出,继续执行 当主线程调用exit/或return时,其余线程退出,整个进程都退出了. #include <pthread.h> #in ...
- DOM-based xss
这个漏洞往往存在于客户端脚本,如果一个Javascript脚本访问需要参数的URL,且需要将该信息用于写入自己的页面,且信息未被编码,那么就有可能存在这个漏洞. (一)DOM—based XSS漏洞的 ...
- PHP undefined index的解决办法
方法1:服务器配置修改 修改 php.ini 中的 error配置下错误显示方式:将error_reporting = E_ALL | E_STRICT 修改为 error_reporting = E ...
- centos命令
alt + z 打开终端(自定义命令) su 切换到root