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

【使用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) { returnthis.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控制 每次显示的数据;后端分页就是每次将所需的页码发到后端,然后后端查询数据库,再将该页数据返回到前端显示。一般采用后者,即后端分页。

      推荐阅读