最近自己在学习ssm框架,在进行针对数据库表的 CURD操作时候,想到了分页这个知识点,然后就开始查阅资料准备用ssm框架进行简单的分页操作。
首先我的这个分页呢,是借助外来jar包中的类进行实现的,需要几个jar包的依赖,
这是我写的一个mybatis的dao 接口
public interface IDeptDAO{
//select column中包含参数时
public List<Dept> selectColumns(@Param("columns") String... columns);
//分页的dao方法
public List<Dept> findByPage(int pagenow,int pagesize);
}
这是我写的DEPT这张表的映射文件中关于分页的那一部分,
<!--select column中包含参数时-->
<select id="selectColumns" resultType="Dept">
select
<if test="columns==null or columns.length == 0">
*
</if>
<if test="columns!=null and columns.length > 0">
<foreach collection="columns" item="column" separator=",">
${column}
</foreach>
</if>
from dept
</select>
DeptDAO.java
public class DeptDAO implements IDeptDAO {
//分页
public List<Dept> selectColumns(String... columns) {
SqlSession session=MybatisSessionFacttory.getSqlSession();
IDeptDAO dao=session.getMapper(IDeptDAO.class);
List<Dept> list=dao.selectColumns(columns);
//System.out.println(list.size());
return null;
}
public List<Dept> findByPage(int pagenow, int pagesize) {
SqlSession session=MybatisSessionFacttory.getSqlSession();
IDeptDAO dao=session.getMapper(IDeptDAO.class);
Page<Dept> page=PageHelper.startPage(pagenow,pagesize);
dao.selectColumns();
List<Dept> list=page.getResult();
return list;
}
}
ShowDeptAction.java
public class ShowDeptAction {
@Resource(name="deptdao")
private DeptDAO deptdao;
//分页查询
@RequestMapping(value="/page.do",method=RequestMethod.GET)
public String findByPage(HttpServletRequest request,String pagenow){
//解决第一次请求的问题
if (pagenow==null) {
pagenow="1";
}else {
pagenow=pagenow;
}
List<Dept> list=deptdao.findByPage(Integer.parseInt(pagenow),3);
//全查得到总条数
int all=deptdao.findAll().size();
//根据总条数和每页大小得到总页数
int totalpage=(all-1)/3+1;
//System.out.println(totalpage);
//放在请求范围里面
request.setAttribute("totalpage", totalpage);
request.setAttribute("pagenow", pagenow);
request.setAttribute("list", list);
请求转发到index.jsp
return "index";
}
}
index.jsp
这是我用简单的bootstrap框架做的
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<!-- <script type="text/javascript" src="js/bootstrap.js"></script>
<link type="text/css" href="styles.css">
-->
<link rel="stylesheet" href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="http://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-xs-12 col-sm-12"></div>
</div>
<div class="col-xs-12 col-sm-12">
<table class="table table-hover table-condensed table-bordered">
<tr>
<td>编号</td>
<td>名称</td>
<td>地址</td>
<td>删除操作</td>
<td>修改操作</td>
</tr>
<c:forEach items="${list }" var="d">
<tr>
<td>${d.deptno}</td>
<td>${d.dname}</td>
<td>${d.loc}</td>
<td><a href="delete.do?deptno=${d.deptno}">删除</a></td>
<td><a href="preupdate.do?deptno=${d.deptno }">修改</a></td>
</tr>
</c:forEach>
<tr>
<td colspan="5" align="center">
<c:choose>
<c:when test="${totalpage==1 }">
首页
上一页
下一页
尾页
</c:when>
<c:when test="${pagenow==1}">
首页
上一页
<a href="page.do?pagenow=${pagenow+1}">下一页</a>
<a href="page.do?pagenow=${totalpage}">尾页</a>
</c:when>
<c:when test="${pagenow==totalpage }">
<a href="page.do?pagenow=1">首页</a>
<a href="page.do?pagenow=${pagenow-1}">上一页</a>
下一页
尾页
</c:when>
<c:when test="${pagenow>1||pagenow<totalpage}">
<a href="page.do?pagenow=1">首页</a>
<a href="page.do?pagenow=${pagenow-1}">上一页</a>
<a href="page.do?pagenow=${pagenow+1}">下一页</a>
<a href="page.do?pagenow=${totalpage}">尾页</a>
</c:when>
</c:choose>
共${totalpage}页
当前第${pagenow}页
</td>
</tr>
<tr>
<td colspan="5" align="center">
<a href="save.jsp">增加部门</a>
</td>
</tr>
</table>
</div>
</div>
</body>
</html>