freemarker+bootstrap分页插件使用

文章目录

  • 配置
    • pom.xml部分
    • applicationContext.xml 部分
      • 分页配置
      • freemarker视图解析配置
  • 后端
    • 定义一个Queryobject类获取前端传来的数据
    • 业务层实现类
    • 控制器层
  • 前端
    • js部分
    • freemarker部分

  • 前后端都需要配个插件 互相配合展示效果

配置

pom.xml部分


        
            com.github.pagehelper
            pagehelper
            5.1.2
        

applicationContext.xml 部分

分页配置

  
    
        
        

        
            
                
                    
                        
                        
                            pageSizeZero=true 
                            reasonable=true 
                        
                    
                
            
        
    

freemarker视图解析配置

 
    
        
        
        
        
        
            
                
                true
            
        
    
    
    
        
        
        
        
        
        
    

后端

定义一个Queryobject类获取前端传来的数据

@Getter
@Setter
public class Queryobject {
    private int currentPage =1;
    private int pageSize=5;

}

业务层实现类

  • 分页插件,不需要我们写count语句,它会自动生成, 高查sql不需要我们自己写limt,它会在你原本的sql上自动拼接limit上去并执行
    ,limit是插件自动计算qo的参数并拼接上去,插件提供PageInfo类,用于封装分页相关数据,不需要自己写PageResult类
    public PageInfo query(Queryobject qo) 
        PageHelper.startPage(qo.getCurrentPage(), qo.getPageSize());//开始分页(对下一个sql进行分页),传当前页和每页显示数量
        List departments = departmentMapper.selectForList(qo);
        return new PageInfo<>(departments);
    }

控制器层

  • 直接返回给前端数据即可
@RequestMapping("/list")
    public String list(Model model, Queryobject qo){

        model.addAttribute("pageInfo",departmentService.query(qo));
                return "department/list";//WEB-INF/views/department/list.jsp
    }

前端

js部分

  • 这边我放进page.ftl的单独页面里
 //分页  调用了bootstrap的分页插件
    $(function(){
        $("#pagination").twbsPagination({
                totalPages: ${pageInfo.pages} || 1, //总页数,pageinfo是对应后端传来的变量名称
                startPage: ${pageInfo.pageNum} || 1, //当前页
                visiblePages:5, //显示几页
                first:"首页",
                prev:"上页",
                next:"下页",
                last:"尾页",
                initiateStartPageClick:false,
                onPageClick:function(event,page){//点击页数 会执行方法
					$("#currentPage").val(page);
					$("#searchForm").submit();
				}
		});
    })

freemarker部分

     
                
<#list pageInfo.list as d>
序号 部门名称 部门编号 操作
${d_index+1} ${d.name} ${d.sn} 编辑 删除
<#include "/common/page.ftl" >

freemarker+bootstrap分页插件使用_第1张图片

你可能感兴趣的:(前端,后端,框架/架构,java,jquery)