SpringMVC框架下实现分页功能
1、创建实体类Page.java
@Entity
public class Page {
private int totalRecord;// 表示查询后一共得到多少条结果记录
private int pageSize; // 表示页面一次要显示多少条记录
private int totalPage;// 表示将所有的记录进行分页后,一共有多少页
private int startIndex;// 表示从所有的结果记录中的哪一个编号开始分页查询
private int currentPage; // 表示用户想看的页数 @SuppressWarnings("unchecked")
private List list =null;// list集合是用来装载一个页面中的所有记录的 public Page(int pageNum, int totalRecord) {
this.currentPage = pageNum;
this.totalRecord = totalRecord; this.pageSize = 5;// 设置一页默认显示10条查询记录
this.startIndex = (this.currentPage - 1) * this.pageSize;// 至于为什么this.page要减1,
// 是因为mysql数据库对于分页查询时,得到的所有的查询记录,第一条记录的编号是从0开始。
if (this.totalRecord % this.pageSize == 0) {
this.totalPage = this.totalRecord / this.pageSize;
} else {
this.totalPage = this.totalRecord / this.pageSize + 1;
} } //****此处省略了set和get方法****//
}
2、创建Dao层实现类PageDaoImpl.java
@Repository
public class PageDaoImpl implements PageDao { @Autowired
private JdbcTemplate jdbcTemplate; /*
* 获得总记录数
*/
@SuppressWarnings("deprecation")
public int getTotalRecord(String sql, Object... arrayParameters) {
int totalRecord = jdbcTemplate.queryForInt(sql, arrayParameters);
return totalRecord;
} /*
* 获取当前页数据
*/
@SuppressWarnings("unchecked")
public Page getPage(int pageNum, Class clazz, String sql, int totalRecord, Object... parameters) {
Page page = new Page(pageNum, totalRecord);
sql = sql+" limit "+page.getStartIndex()+","+page.getPageSize();
List list=jdbcTemplate.query(sql, parameters, ParameterizedBeanPropertyRowMapper.newInstance(clazz));
page.setList(list);
return page;
}
}
3、在服务层实现类中添加代码
public Page getClassifyPage(int pageNum) {
String sql = "select count(*) from t_classify";
int totalRecord = pageDao.getTotalRecord(sql);
sql = "select * from t_classify";
Page page = pageDao.getPage(pageNum, Classify.class, sql, totalRecord);
return page;
}
4、在控制层中添加代码
@RequestMapping("/list")
public String list(HttpServletRequest request) {
String pageNum=request.getParameter("p")==null?"1":request.getParameter("p");//获取页码,默认1
request.setAttribute("page", classifyService.getClassifyPage(Integer.valueOf(pageNum)));return "admin/classify/list";
}
5、在jsp页面中布局
内容部分:
<c:forEach var="classify" items="${page.list}" varStatus="s">
<tr class="column_${s.count}">
<td class="list-text color999">${classify.name}</td>
<td class="list-text color999">${classify.id}</td>
</tr>
</c:forEach>
分页按钮部分:
页次:${page.currentPage}/${page.totalPage} 每页${page.pageSize} 总数${page.totalRecord}
<a href="<c:url value='/admin/user/list.htm?p=1'/>">首页</a>
<c:choose>
<c:when test="${page.currentPage>1}">
<a href="<c:url value='/admin/classify/list.htm?p=${page.currentPage-1}'/>">上一页</a>
</c:when>
<c:otherwise>
<a href="#">上一页</a>
</c:otherwise>
</c:choose>
<%--
<c:forEach var="i" begin="1" end="${page.totalPage}">
<a href="<c:url value='/classify.htm?c=${page.list[0].classifyid}&p=${i}'/>">${i}</a>
</c:forEach>
--%>
<c:choose>
<c:when test="${page.currentPage<page.totalPage}">
<a href="<c:url value='/admin/classify/list.htm?p=${page.currentPage+1}'/>">下一页</a>
</c:when>
<c:otherwise>
<a href="#">下一页</a>
</c:otherwise>
</c:choose>
SpringMVC框架下实现分页功能的更多相关文章
- springMVC框架下JQuery传递并解析Json数据
springMVC框架下JQuery传递并解析Json数据
- springmvc框架下ajax请求传参数中文乱码解决
springmvc框架下jsp界面通过ajax请求后台数据,传递中文参数到后台显示乱码 解决方法:js代码 运用encodeURI处理两次 /* *掩码处理 */ function maskWord( ...
- (转)springMVC框架下JQuery传递并解析Json数据
springMVC框架下JQuery传递并解析Json数据 json作为一种轻量级的数据交换格式,在前后台数据交换中占据着非常重要的地位.Json的语法非常简单,采用的是键值对表示形式.JSON 可以 ...
- 使用Javamelody验证struts-spring框架与springMVC框架下action的訪问效率
在前文中我提到了关于为何要使用springMVC的问题,当中一点是使用springMVC比起原先的struts+spring框架在效率上是有优势的.为了验证这个问题,我做了两个Demo来验证究竟是不是 ...
- DjangoRestFramework框架三种分页功能的实现 - 在DjangoStarter项目模板中封装
前言 继续Django后端开发系列文章.刚好遇到一个分页的需求,就记录一下. Django作为一个"全家桶"型的框架,本身啥都有,分页组件也是有的,但默认的分页组件没有对API开发 ...
- springMVC框架下——通用接口之图片上传接口
我所想要的图片上传接口是指服务器端在完成图片上传后,返回一个可访问的图片地址. spring mvc框架下图片上传非常简单,如下 @RequestMapping(value="/upload ...
- 项目搭建系列之二:SpringMVC框架下配置MyBatis
1.什么是MyBatis? MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis ...
- laravel 框架 下拉分页
<!doctype html><html lang="en"><head> <meta charset="UTF-8" ...
- SpringMVC框架下数据的增删改查,数据类型转换,数据格式化,数据校验,错误输入的消息回显
在eclipse中javaEE环境下: 这儿并没有连接数据库,而是将数据存放在map集合中: 将各种架包导入lib下... web.xml文件配置为 <?xml version="1. ...
随机推荐
- postgresql删除活动链接的数据库
当我们在使用drop database testdb命令删除数据库时,会提示该数据库正在被使用,这样我们就无法删除,此时我们可以通过如下语句断开该数据库的所有链接: SELECT pg_termina ...
- React进阶篇(2) -- Redux
前言 如果还不知道为什么要使用Redux,说明你暂时还不需要它. 三大原则 单一数据源 整个应用的 state 被储存在一棵 object tree 中,并且这个 object tree 只存在于唯一 ...
- D:大整数的加减乘除
描述 给出两个正整数以及四则运算操作符(+ - * /),求运算结果. 输入第一行:正整数a,长度不超过100第二行:四则运算符o,o是“+”,“-”,“*”,“/”中的某一个第三行:正整数b,长度不 ...
- HSSFWorkbook导出表格使用
HSSFWorkbook excel的文档对象 HSSFSheet excel的表单 HSSFRow ...
- networkx如何将图写到邻接矩阵里?
nx.write_adjlist(G1,graph_filename1)#生成的是二进制文件nx.write_adjlist(G2,graph_filename2)
- Flink学习笔记:Connectors之kafka
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...
- flink学习笔记-flink实战
说明:本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKh ...
- DIV做的Table
<style> div.table{ border:1px solid #d7d7d7; margin-left:0px; border-bottom-width:; width:1200 ...
- json_decode转换数组过程中,结果为null处理办法,百分之百有效
json_decode这个函数是json_encode的反函数,一般传递数据的时候为了压缩数据,会将数组格式的数据转换成json格式,用到的函数就是json_encode,然后接收到数据之后再用jso ...
- _.each _.map _.filter javascript 语法
1.forEach():没有返回值,只是针对每个元素调用func 简单来说,就是将数组中的每个值,依次进行遍历,执行功能函数 如果只需对数组元素进行操作,不需返回任何值时适用 var ...