Bootstrap table后端分页(ssm版)

 

 

 

 

说明
bootstrap table可以前端分页,也可以后端sql用limit分页。
这里讲的是后端分页,即实用limit。性能较好,一般均用这种
源码下载地址:https://git.oschina.net/dshvv/pagination_byjava.git
该文主要讲后端分页:
1、前端每点击翻页按钮,就会向后端发出一次请求,后端只查询当前页数所需要的几条数据
2、查询也是后端,会进入服务器

 

源码 

html

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
    <head>
        <meta charset="utf-8">
        <title>图片上传</title>
        <!-- jq -->
        <script type="text/javascript" src="<%=basePath%>js/jquery-3.1.1.min.js"></script>
        
        <!-- bootstrap -->
        <link rel="stylesheet" href="<%=basePath%>/plugs/bootstrap/css/bootstrap.min.css">
        <script type="text/javascript" src="<%=basePath%>/plugs/bootstrap/js/bootstrap.min.js"></script>
        
        <!-- 分页插件 -->
        <link rel="stylesheet" href="<%=basePath%>plugs/bootstrap-table/bootstrap-table.min.css">
        <script type="text/javascript" src="<%=basePath%>plugs/bootstrap-table/bootstrap-table.min.js"></script>
        <script type="text/javascript" src="<%=basePath%>plugs/bootstrap-table/bootstrap-table-locale-all.min.js"></script>
    </head>
    <body>
        <div class="container" style="margin-top:100px">
            <div class="row">
                <!-- 搜索框 -->
                <div class="col-xs-6 pull-right">
                    <div class="input-group">
                        <input type="text" class=" form-control" name="age" placeholder="请输入年龄">
                        <input type="text" class=" form-control" name="name" placeholder="请输入姓名">
                        <span class="input-group-btn">
                            <button class="btn btn-default search" type="button">Go!</button>
                        </span>
                    </div>
                </div>
                <!-- 表格 -->
                <div class="col-xs-12">
                    <table class="table table-striped table-bordered table-hover" ></table>
                </div>
            </div>
        </div>
        <script type="text/javascript">
            class BstpTable{
                constructor(obj) {
                    this.obj=obj;
                }
                inint(searchArgs){
                     //---先销毁表格 ---
                     this.obj.bootstrapTable('destroy');  
                     //---初始化表格,动态从服务器加载数据--- 
                     this.obj.bootstrapTable({
                        //【发出请求的基础信息】
                        url: '<%=basePath%>student/selectByFy',
                        method: 'post',
                        contentType: "application/x-www-form-urlencoded",
                        
                        
                        //【查询设置】
                        /* queryParamsType的默认值为 'limit' ,在默认情况下 传给服务端的参数为:offset,limit,sort
                                          设置为 ''  在这种情况下传给服务器的参数为:pageSize,pageNumber */
                        queryParamsType:'', 
                        queryParams: function queryParams(params) {  
                          var param = {  
                              pageNumber: params.pageNumber,    
                              pageSize: params.pageSize
                          }; 
                          for(var key in searchArgs){
                              param[key]=searchArgs[key]
                          }  
                          return param;                   
                        }, 
                        
                        //【其它设置】
                        locale:'zh-CN',//中文支持
                        pagination: true,//是否开启分页(*)
                        pageNumber:1,//初始化加载第一页,默认第一页
                        pageSize: 3,//每页的记录行数(*)
                        pageList: [2,3,4],//可供选择的每页的行数(*)
                        sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
                        showRefresh:true,//刷新按钮
                        
                        //【样式设置】
                        height: 300,//table的高度
                        //按需求设置不同的样式:5个取值代表5中颜色['active', 'success', 'info', 'warning', 'danger'];
                        rowStyle: function (row, index) {
                            var style = "";
                            if (row.name=="小红") {style='success';}
                            return { classes: style }
                        },
                        
                        //【设置列】
                        columns: [
                         {field: 'id',title: 'id'}, 
                         {field: 'name',title: '姓名'},
                         {field: 'age',title: '年龄'},
                         {field: 'tool',title: '操作', align: 'center',
                            formatter:function(value,row,index){
                                var element = 
                                "<a class='edit' data-id='"+row.id +"'>编辑</a> "+ 
                                "<a class='delet' data-id='"+row.id +"'>删除</a> ";
                                return element;  
                            } 
                          }
                        ]
                    })
                 }
            }
            
            var bstpTable=new BstpTable($("table"));
            bstpTable.inint({})
            
            $(".search").click(function(){
                var searchArgs={
                     name:$("input[name='name']").val(),
                     age:$("input[name='age']").val()
                }
                bstpTable.inint(searchArgs)
            })
        </script>
    </body>
</html>

 

controller

package com.dsh.controller;

import java.util.HashMap;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.dsh.service.StudentService;

@Controller
@RequestMapping("student")
public class StudentController {
    @Autowired
    private StudentService studentService;

    @RequestMapping("selectByFy")
    @ResponseBody
    public  Map<String,Object> selectByFy(int pageSize,int pageNumber,String name,Integer age){
        /*所需参数*/
        Map<String, Object> param=new HashMap<String, Object>();
        int a=(pageNumber-1)*pageSize;
        int b=pageSize;
        param.put("a", a);
        param.put("b", b);
        param.put("name", name);
        param.put("age", age);
        return studentService.selectByFy(param);
    }
}

 

service

package com.dsh.service.imp;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.dsh.mapper.StudentCustomMapper;
import com.dsh.pojo.Student;
import com.dsh.service.StudentService;

@Service
public class StudentServiceImp implements StudentService {
    @Autowired
    private StudentCustomMapper studentDao;

    @Override
    public Map<String,Object> selectByFy(Map<String, Object> param) {
        //bootstrap-table要求服务器返回的json须包含:totlal,rows
        Map<String,Object> result = new HashMap<String,Object>();
        int total=studentDao.selectByFy(null).size();
        List<Student> rows=studentDao.selectByFy(param);
        result.put("total",total);
        result.put("rows",rows);
        return result;
    }
}

 

mapper.xml(即dao)

<?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="com.dsh.mapper.StudentCustomMapper" >
    <select id="selectByFy" resultType="com.dsh.pojo.Student" parameterType="Map">
        SELECT *
        FROM student
        <if test="a!=null">
            <where> 
                <if test="name!=null and name!=''"> name=#{name}</if>
                <if test="age!=null and age!=''">AND  age=#{age}</if>
            </where>
            LIMIT #{a},#{b}
        </if>
    </select>
</mapper>

 

转载于:https://www.cnblogs.com/dshvv/p/9646174.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、简介 通过这个课程带大家从零开发一款功能全面的后台管理系统,包括项目搭建、功能实现到最后的Linux系统部署全过程。本课程使用SpringMVC + Spring + Mybatis作为主体框架,使用AdminLTE作为前端框架,使用主流关系型数据库Mysql作为存储数据库,使用非关系型数据库Redis作为缓存数据库,并集成SpringSecuriy安全框架做权限的动态管理,集成Swagger2自动生成接口文档,集成Druid连接池进行SQL性能监控,集成ActiveMQ消息中间件进行异步解耦,提高性能。最后使用linux系统进行服务部署,并搭建nginx反向代理服务器提高网站性能。 二、学习目标 通过本课程的学习带大家掌握SSM框架的开发流程,并熟练使用SpringSecurity做为安全框架进行权限管理,整合相关优秀的开源框架进行功能开发。还在项目中带大家学习前端相关的Jquery、Bootstrap等知识。课程结束之后希望大家能做到独立进行开发项目的目的,增强解决问题的能力,具备功能落地实现的能力。 三、课程涉及知识点 SpringMVC源码分析Mybatis源码分析通用MapperMysql数据库Redis缓存实现ActiveMQ消息中间件SpringSecurity鉴权Swagger2接口文档生成自定义注解AOP切面编程自定义过滤器Logback日志整合Druid性能监控Linux系统Nginx反向代理Ajax异步请求技术Jquery基本使用AdminLTE前端框架Chart图表-线状图和饼状图百度地图定位城市BootStrap前端框架BootStrap-Table插件BootStrap-Treeview插件Markdown编辑器403、404、500错误页面配置数据库事务消息提示插件toastr.js图片上传插件bootstrap fileinput数字滚动效果pv/uv流量统计...四、课程部分内容截图如下 1、首页 2、菜单管理 3、图床管理 4、图标管理 5、留言反馈管理 6、druid监控 7、登录日志

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值