ssm项目---人事管理系统:分页示例

概要说明:最近做了一个ssm项目—人事管理系统

现在分享一下对User的分页查询

效果图如下:

这里写图片描述


代码示例

1. 首先建立一个Page类,应包含每页显示的记录数,总页数,当前页,总记录数,和一个list对象,起始位置

package com.su.util;

import java.util.List;

public class Page {
    public static final int PAGESIZE = 3;  //每页显示的记录数
    private Integer totalPages;     //总页数
    private Integer currentPage;    //当前页
    private Integer tatalNums;      //总记录数
    private List list;             //list对象
    private Integer firstResult;   //起始位置
    public Integer getFirstResult() {
        return firstResult;
    }
    public void setFirstResult(Integer firstResult) {
        this.firstResult = firstResult;
    }
    public static int getPagesize() {
        return PAGESIZE;
    }
    public Integer getTotalPages() {
        return totalPages;
    }
    public void setTotalPages(Integer totalPages) {
        this.totalPages = totalPages;
    }
    public Integer getCurrentPage() {
        return currentPage;
    }
    public void setCurrentPage(Integer currentPage) {
        this.currentPage = currentPage;
    }
    public Integer getTatalNums() {
        return tatalNums;
    }
    public void setTatalNums(Integer tatalNums) {
        this.tatalNums = tatalNums;
    }
    public List getList() {
        return list;
    }
    public void setList(List list) {
        this.list = list;
    }
}


2. 建立一个user类

package com.su.domain;

import java.util.Date;

public class User {
    private Integer userId;   //id
    private String loginName; //登录名
    private String loginPwd;  //登录密码
    private Integer userStatus;  //用户状态
    private Date userCreateDate;  //创建时间
    private String userName;      //用户名
    public Integer getUserId() {
        return userId;
    }
    public void setUserId(Integer userId) {
        this.userId = userId;
    }
    public String getLoginName() {
        return loginName;
    }
    public void setLoginName(String loginName) {
        this.loginName = loginName;
    }
    public String getLoginPwd() {
        return loginPwd;
    }
    public void setLoginPwd(String loginPwd) {
        this.loginPwd = loginPwd;
    }
    public Integer getUserStatus() {
        return userStatus;
    }
    public void setUserStatus(Integer userStatus) {
        this.userStatus = userStatus;
    }
    public Date getUserCreateDate() {
        return userCreateDate;
    }
    public void setUserCreateDate(Date userCreateDate) {
        this.userCreateDate = userCreateDate;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }


}


3. 建立和user对应的映射文件****user.xml

在映射文件中创建sql语句。另外namespace=”user“,这里user是在mybatisconfig.xml配置文件定义了别名,当然也可以完整路径:namespace=”com.su.domain.User

mybatisconfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
    <!--  -->
    <typeAliases>
        <!-- 单个类定义别名 type:类型的路径 alias:别名-->
        <!-- <typeAlias type="com.mbd.domain.Student" alias="student"/> -->
        <!-- 指定包名,mybatis自动扫描包中所有实体类,自动定义别名,别名就是类名(首字母大写或小写都可以)-->
        <package name="com.su.domain"/>
    </typeAliases>

    <!-- 加载映射文件 -->
    <mappers>
        <mapper resource="com/su/domain/User.xml"/>
        <package name="com.su.mapper"/>
    </mappers>





</configuration>


user.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">

<mapper namespace="user">
    <!-- 根据条件查询记录数 -->
    <select id="findNameCount" resultType="java.lang.Integer" parameterType="user">
        select count(*) from userTable where userName like '%${userName}%'
    </select>

    <!-- 查询全部用户 -->
    <select id="findAllUser" resultType="user">
        select * from userTable
    </select>

    <!-- 根据条件分页查询 -->
    <select id="findUserByPageName" parameterType="user" resultType="user">
        select * from userTable where userName like '%${userName}%'
    </select>

</mapper>


4. 创建UserDao

public interface UserDao {
    public Page findUserByPageName(int currentPage, User user);  //根据条件分页查询
}


*5. 创建UserDaoImpl
这个是最最最重要的代码,有了这,以后的分页就不愁了

public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {
    @Override
    public Page findUserByPageName(int currentPage, User user) {
        Page page = new Page();
        SqlSession sqlSession = this.getSqlSession();    //得到session
        int count = sqlSession.selectOne("user.findNameCount",user);    //根据条件查询记录数
        System.out.println("******总记录数:"+count);
        page.setTatalNums(count);       //总记录数
        int totalPages = (page.getTatalNums() % page.PAGESIZE) == 0?
                page.getTatalNums() / page.PAGESIZE : (page.getTatalNums() / page.PAGESIZE)+1;
        System.out.println("******总页数:"+totalPages);
        page.setTotalPages(totalPages);     //总页数
        if(currentPage < 1 || currentPage == 0){
            currentPage = 1;
        }else if(currentPage > totalPages){
            currentPage = totalPages;
        }
        System.out.println("******当前页:"+currentPage);
        page.setCurrentPage(currentPage);   //当前页
        int firstResult = (currentPage-1) * page.PAGESIZE;  //起始行
        page.setFirstResult(firstResult);   

        // RowBounds(offset,limit)   offset起始行 ,limit是当前页显示多少条数据
        RowBounds rowBounds = new RowBounds(page.getFirstResult(), page.PAGESIZE); 

        //查询记录
        List list = sqlSession.selectList("user.findUserByPageName", user,rowBounds);

        page.setList(list);

        return page;
    }


}


6. 创建UserService,UserServiceImpl

public interface UserService {
    public Page findUserByPageName(int currentPage, User user);  //根据条件分页查询
}


public class UserServiceImpl  implements UserService {
    @Autowired
    private UserDao userDao;

    @Override
    public Page findUserByPageName(int currentPage, User user) {

        return userDao.findUserByPageName(currentPage, user);
    }

}


7.这里创建控制器UserController,Jsp页面先访问控制器然后在通过控制器去调用其他的方法,最后再把结果解析由jsp页面显示

@Controller
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("findUserByPageName.action")
    public ModelAndView findUserByPageName(Integer currentPage,User user,ModelAndView mav,HttpServletRequest request){

        System.out.println("in UserController method findUserByPageName()");

        if(user != null){
            System.out.println("搜索名:"+user.getUserName());
        }

         //检索条件,放到request中,在jsp页面回显搜索条件
        request.setAttribute("name", user.getUserName());

        Page page = userService.findUserByPageName(currentPage, user);

        System.out.println(page.getCurrentPage());

        request.setAttribute("page", page);

        mav.setViewName("jsp/user/userListTwo.jsp");

        return mav;
    }


写到这,分页显示就差不多完成了最后我们来看一下jsp页面吧

8. jsp页面主要来展示页面数据

<%@ page language="java" contentType="text/html; charset=UTF-8" import="com.su.util.*"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>人事管理系统 ——用户管理</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <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 href="${pageContext.request.contextPath}/css/css.css" type="text/css" rel="stylesheet" />
    <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/ligerUI/skins/Aqua/css/ligerui-dialog.css"/>
    <link href="${pageContext.request.contextPath}/js/ligerUI/skins/ligerui-icons.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.11.0.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-migrate-1.2.1.js"></script>
    <script src="${pageContext.request.contextPath}/js/ligerUI/js/core/base.js" type="text/javascript"></script>
    <script src="${pageContext.request.contextPath}/js/ligerUI/js/plugins/ligerDrag.js" type="text/javascript"></script> 
    <script src="${pageContext.request.contextPath}/js/ligerUI/js/plugins/ligerDialog.js" type="text/javascript"></script>
    <script src="${pageContext.request.contextPath}/js/ligerUI/js/plugins/ligerResizable.jss" type="text/javascript"></script>
    <link href="${pageContext.request.contextPath}/css/pager.css" type="text/css" rel="stylesheet" />

    <script type="text/javascript">
    function one(frm,num){ 
        frm.currentPage.value=num;
        frm.submit();
    }
    function jump_to(frm,pageNo){
        var reg=/^\d+$/;
        if(!reg.test(pageNo)){
            alert("请输入正确数字");
        }else{
            one(frm,pageNo);
        }
    }



        $(function(){
           /** 获取上一次选中的部门数据 */
           var boxs  = $("input[type='checkbox'][id^='box_']");

          /** 给数据行绑定鼠标覆盖以及鼠标移开事件  */
            $("tr[id^='data_']").hover(function(){
                $(this).css("backgroundColor","#eeccff");
            },function(){
                $(this).css("backgroundColor","#ffffff");
            })


           /** 删除员工绑定点击事件 */
           $("#delete").click(function(){
               /** 获取到用户选中的复选框  */
               var checkedBoxs = boxs.filter(":checked");
               if(checkedBoxs.length < 1){
                   $.ligerDialog.error("请选择一个需要删除的用户!");
               }else{
                   /** 得到用户选中的所有的需要删除的ids */
                   var ids = checkedBoxs.map(function(){
                       return this.value;
                   })
                   //alert("删除:"+ids.get());
                   $.ligerDialog.confirm("确认要删除吗?","删除用户",function(r){
                       if(r){

                           // 发送请求
                           window.location = "${pageContext.request.contextPath}/removeUser.action?ids=" + ids.get();
                       }
                   });
               }
           })
        })
    </script>
</head>
<body>

    <!-- 导航 -->

    <table width="100%" border="0" cellpadding="0" cellspacing="0">
      <tr><td height="10"></td></tr>
      <tr>
        <td width="15" height="32"><img src="${pageContext.request.contextPath}/images/main_locleft.gif" width="15" height="32"></td>
        <td class="main_locbg font2"><img src="${pageContext.request.contextPath}/images/pointer.gif">&nbsp;&nbsp;&nbsp;当前位置:用户管理 &gt; 用户查询</td>
        <td width="15" height="32"><img src="${pageContext.request.contextPath}/images/main_locright.gif" width="15" height="32"></td>
      </tr>
    </table>

    <form name="empform" method="post" id="empform" action="${pageContext.request.contextPath}/findUserByPageName.action">
    <table width="100%" height="90%" border="0" cellpadding="5" cellspacing="0" class="main_tabbor">
      <!-- 查询区  -->
      <tr valign="top">
        <td height="30">
          <table width="100%" border="0" cellpadding="0" cellspacing="10" class="main_tab">
            <tr>
              <td class="fftd">
                用户信息如下:

                    <table width="100%" border="0" cellpadding="0" cellspacing="0">
                      <tr>
                        <td class="font3">
                            用户名:<input type="text" name="userName" value="${requestScope.name }">
                            <input type="hidden" name="currentPage" value="1">
                            &nbsp;&nbsp;&nbsp;&nbsp;
                             <input type="submit" value="搜索"/>&nbsp;&nbsp;
                            <input id="delete" type="button" value="删除"/>
                        </td>
                      </tr>
                    </table>

              </td>
            </tr>
          </table>
        </td>
      </tr>

      <!-- 数据展示区 -->
      <tr valign="top">
        <td height="20">
          <table width="100%" border="1" cellpadding="5" cellspacing="0" style="border:#c2c6cc 1px solid; border-collapse:collapse;">
            <tr class="main_trbg_tit" align="center">
              <td><input type="checkbox" name="checkAll" id="checkAll"></td>
              <td>登录名</td>
              <td>密码</td>
              <td>用户名</td>
              <td>状态</td>
              <td>创建时间</td>
              <td align="center">操作</td>
            </tr>
            <c:forEach items="${requestScope.page.list}" var="user" varStatus="stat">
                <tr id="data_${stat.index}" align="center" class="main_trbg" onMouseOver="move(this);" onMouseOut="out(this);">
                    <td><input type="checkbox" id="box_${stat.index}" value="${user.userId}"></td>
                     <td>${user.loginName }</td>
                      <td>${user.loginPwd }</td>
                      <td>${user.userName }</td>
                      <td>${user.userStatus }</td>
                      <td><f:formatDate value="${user.userCreateDate}" 
                                type="date" dateStyle="long"/></td>
                     <td align="center" width="40px;"><a href="${pageContext.request.contextPath}/updateUser.action?flag=1&userId=${user.userId}">
                            <img title="修改" src="${pageContext.request.contextPath}/images/update.gif"/></a>
                      </td>
                </tr>
            </c:forEach>
          </table>
        </td>
      </tr>
      <!-- 分页标签  <tr valign="top"><td align="center" class="font3"></td></tr> -->
       <tr valign="top"><td align="center" class="font3">



        <% Page pageOne = (Page)request.getAttribute("page"); %>
        <% if(pageOne!=null) {for(int i=1;i<=pageOne.getTotalPages();i++){ %>
            <a href="javascript:one(document.forms[0],<%=i%>)"><font size="3px"><%=i%>&nbsp;</font></a>
        <% }} %>

        <br>
        搜索结果共<font style="color:red">${page.tatalNums }</font>条&nbsp;当前页${page.currentPage}/共${page.totalPages}页
        <span>跳转至</span><input type="text" name="inputPage" id="inputPage" value="${page.currentPage}" style="width:30px;text-align:center;"/><input type="button" onclick="javascript:jump_to(document.forms[0],document.getElementById('inputPage').value)" value="GO"/>

      </td></tr>
    </table>
    </form>
    <div style="height:10px;"></div>
</body>
</html>


分页功能显示已完成,供以后复习参考


Author:su1573

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ssy03092919

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值