使用Bootstrap Paginator分页插件进行分页

Bootstrap Paginator是一款基于Bootstrap和jQuery的分页组件。可以让我们方便的构建分页应用。 


首先,我们需要引用相应的文件,其下载地址为:https://github.com/lyonlai/bootstrap-paginator/releases



  • 1
  • 2
  • 3

下载的文件夹中有两个示例页面,可以作为参考 


然后,在网页中添加代码

  • 操作用户 操作时间 IP地址 操作内容
  • ${log.LOG_SUBJECT_NAME } ${log.LOG_TIME } ${log.LOG_SRC_IP } ${log.LOG_RESULT_DESC }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52

    控制器代码:

        private ModelAndView toUserOperaLog(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            //初始化mv
            final ModelAndView mv = new ModelAndView(Views.VIEW_USER_OPERA_LOG);
            //获取Session中的值
            Object userObj = request.getSession().getAttribute("USER");
            //获取前台传来的当前页数
            String pageObj = request.getParameter("page");
            //初始化页码
            Integer page = 1;
            //加try catch的目的是为了在首页访问该页的时候是没有page参数的,所以会转化失败,此时就用初始化时的1来代替
            try {
                page = Integer.parseInt(pageObj);
            } catch (Exception e) {
            }
            //判断Session中该值是否为空
            if (userObj != null) {
                EntityUser user = (EntityUser) userObj;
                //查询日志总数,并计算总页数
                int count = userService.getLogCount(user.getUSER_ID(), "opera");
                int totalPages = count / PAGE_SIZE + 1;//直接+1有个弊端,就是当数据刚满一页时,会出现一个空白页
                mv.addObject("totalPages", totalPages);
    
                //将当前页码放入mv中年
                mv.addObject("currentPage", page);
    
                //查询日志数据放入mv中
                List logList = logService.findOperaLogByPage(page, PAGE_SIZE, user.getUSER_ID());
                mv.addObject("logs", logList);
            } else {
                //Session为空则直接跳转到首页
                toIndex(request, response);
            }
            //返回mv
            return mv;
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    服务层代码:

        public List findOperaLogByPage(int page,int pageSize,String USER_ID){
            String hql="from EntityLog where USER_ID=? and LOG_TYPE=2 order by LOG_TIME DESC";
            List param=new ArrayList<>();
            param.add(USER_ID);
            return dao.findByPage(page, pageSize, hql, param);
        }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    dao层代码:

        @Override
        public List findByPage(final int page, final int pageSize, final String hql, final List param) {
            return    this.getHibernateTemplate().execute(new HibernateCallback() {
                @Override
                public List doInHibernate(Session session) throws HibernateException {
                    Query query = session.createQuery(hql);
                    if (param != null) {
                        for (int i = 0; i < param.size(); i++) {
                            query.setParameter(i, param.get(i));
                        }
                    }
                    query.setFirstResult((page-1)*pageSize);
                    query.setMaxResults(pageSize);
                    return query.list();
                }
            });
        }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17



    关于javascript中各参数设置可参考网页:http://www.cnblogs.com/moretry/p/4441728.html 


    思考: 
    分页有前端分页和后端分页两种方法。 
    前端分页就是将所有数据查询到前台,然后用js控制 每次显示的数据;后端分页就是每次将所需的页码发到后端,然后后端查询数据库,再将该页数据返回到前端显示。一般采用后者,即后端分页。 

    你可能感兴趣的:(Bootstrap点滴知识)