使用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
@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控制 每次显示的数据;后端分页就是每次将所需的页码发到后端,然后后端查询数据库,再将该页数据返回到前端显示。一般采用后者,即后端分页。
推荐阅读
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- iOS中的Block
- Linux下面如何查看tomcat已经使用多少线程
- 使用composer自动加载类文件
- android|android studio中ndk的使用
- 使用协程爬取网页,计算网页数据大小