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使用的总结类型文章,会先简单的谈一下缓存 ...
随机推荐
- 第四十四课:jQuery UI和jQuery easy UI
jQuery UI是jQuery官方提供的功能效果和UI样式.作为官方出的东西,它一直没有被人们看重,一是它没有datagrid,tree等UI库必备的东西,二是它修改太过频繁,体积庞大.其实它所有以 ...
- python 中转义字符的注释
文章转自:http://blog.sina.com.cn/s/blog_89e141170101cs73.html 转义字符 描述 \(在行尾时) 续行符 \\ 反斜杠符号 \’ 单引号 \” 双引号 ...
- Luncene 学习入门
Lucene是apache组织的一个用java实现全文搜索引擎的开源项目. 其功能非常的强大,api也很简单.总得来说用Lucene来进行建立 和搜索和操作数据库是差不多的(有点像),Document ...
- Java基础-JVM堆与栈
首先看一个解析列子 JVM的内存空间: (1). Heap 堆空间:分配对象 new Student() (2). Stack 栈空间:临时变量 Student stu (3).Code 代码区 :类 ...
- JS弹出窗口代码大全(详细整理)
1.弹启一个全屏窗口 复制代码代码如下: <html> <body http://www.jb51.net','脚本之家','fullscreen');">; < ...
- 洛谷P1202 [USACO1.1]黑色星期五Friday the Thirteenth
题目描述 13号又是一个星期五.13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数.给出N年的一个周期,要求计算1900年1月1日至1900+N- ...
- POJ1065 Area
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 18499 Accepted: 5094 Description You ...
- ECSHOP Inject PHPCode Into \library\myship.php Via \admin\template.php && \includes\cls_template.php Vul Tag_PHP_Code Execute Getshell
目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 PHP语言作为开源社区的一员,提供了各种模板引擎,如FastTemplate,Sm ...
- Thinkphp中验证码的使用以及验证的实现
<input class="TxtValidateCodeCssClass" id="captcha" name="captcha" ...
- Jsonp简单认识(后端使用的是asp.net mvc)
一.Jsonp简介:由于浏览器基于安全有同源策略(同源策略阻止从一个源加载的文档或脚本获取或设置另一个源加载的文档的属性)机制,所以前端无法使用Ajax来获取来获取其他域名下返回的数据,而Jsonp可 ...