controller
@Autowired
private SchoolService schoolService;
/**
* 分页
* @param queryParam
* @return
*/
@RequestMapping("/schoolBase")
@ResponseBody
public BootstrapTable getaaaSchool(@RequestBody(required = false)QueryParam queryParam){
System.out.println("...queryParam"+queryParam);
int limit = queryParam.getLimit();
int offset = queryParam.getOffset();
BaseModelExample baseModelExample = new BaseModelExample();
baseModelExample.setRowIndex(offset);
baseModelExample.setPageSize(limit);
List<School> schools = schoolService.getaaaSch(baseModelExample);
return new BootstrapTable(60,schools);
}
SchoolService.class
package com.neimin.test.service;
import com.neimin.test.common.BaseModelExample;
import com.neimin.test.dao.SchoolMapper;
import com.neimin.test.model.School;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class SchoolService {
@Autowired
private SchoolMapper schoolMapper;
// public List<School> getSchoolData(){
// return schoolMapper.getSchoolData();
// }
public List<School> getaaaSch(BaseModelExample baseModelExample){
return schoolMapper.getaaaSch(baseModelExample);
}
}
SchoolMapper
package com.neimin.test.dao;
import com.neimin.test.common.BaseModelExample;
import com.neimin.test.model.School;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface SchoolMapper {
// List<School> getSchoolData();
List<School> getaaaSch(BaseModelExample baseModelExample);
}
mapper/SchoolMapper.xml
<?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.neimin.test.dao.SchoolMapper">
<select id="getaaaSch" resultType="com.neimin.test.model.School" parameterType="com.neimin.test.common.BaseModelExample">
select * from school limit #{rowIndex},#{pageSize};
</select>
</mapper>
QueryParam
package com.neimin.test.common;
import java.util.Map;
/**
* BootStrap Table查询条件
*/
public class QueryParam {
/**
* offset:第一页的第一行(从0开始)
* limit:一页有多少行
*/
private int limit;
private int offset;
public int getLimit() {
return limit;
}
public void setLimit(int limit) {
this.limit = limit;
}
public int getOffset() {
return offset;
}
public void setOffset(int offset) {
this.offset = offset;
}
//每页显示数量
private int pageSize;
//当前页码
private int pageNumber;
//排序字段
private String sortName;
//排序顺序
private String sortOrder;
private Map<String, Object> search;
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPageNumber() {
return pageNumber;
}
public void setPageNumber(int pageNumber) {
this.pageNumber = pageNumber;
}
public String getSortName() {
return sortName;
}
public void setSortName(String sortName) {
this.sortName = sortName;
}
public String getSortOrder() {
return sortOrder;
}
public void setSortOrder(String sortOrder) {
this.sortOrder = sortOrder;
}
public Map<String, Object> getSearch() {
return search;
}
public void setSearch(Map<String, Object> search) {
this.search = search;
}
@Override
public String toString() {
return "QueryParam{" +
"limit=" + limit +
", offset=" + offset +
", pageSize=" + pageSize +
", pageNumber=" + pageNumber +
", sortName='" + sortName + '\'' +
", sortOrder='" + sortOrder + '\'' +
", search=" + search +
'}';
}
}
templates/js/index_js.html
<script>
$(function () {
//1.初始化Table
var oTable = new TableInit();
oTable.Init();
});
var TableInit = function () {
var oTableInit = new Object();
//初始化Table
oTableInit.Init = function () {
$('#ArbetTable').bootstrapTable({
url: '/schoolBase', //请求后台的URL(*)
//修改
method: 'post', //请求方式(*)
// method: 'get',
toolbar: '#toolbar', //工具按钮用哪个容器
striped: true, //是否显示行间隔色
cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
pagination: true, //是否显示分页(*)
sortable: false, //是否启用排序
sortOrder: "asc", //排序方式
queryParams: oTableInit.queryParams,//传递参数(*)
sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
pageNumber: 1, //初始化加载第一页,默认第一页
pageSize: 10, //每页的记录行数(*)
pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
search: true, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
// contentType: "application/x-www-form-urlencoded",
//修改
contentype:"application/json",
strictSearch: true,
showColumns: true, //是否显示所有的列
showRefresh: true, //是否显示刷新按钮
minimumCountColumns: 2, //最少允许的列数
clickToSelect: true, //是否启用点击选中行
height: 700, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
uniqueId: "no", //每一行的唯一标识,一般为主键列
showToggle: true, //是否显示详细视图和列表视图的切换按钮
cardView: false, //是否显示详细视图
detailView: false, //是否显示父子表
columns: [
{
field: 'id',
title: 'ID'
}, {
field: 'seq',
title: '排名'
}, {
field: 'score',
title: '分数'
},
{
field: 'name',
title: '姓名'
}, {
field: 'level',
title: '等级'
}, {
field: 'remark',
title: '备注'
},
{
field: 'operate',
title: '操作',
formatter: operateFormatter //自定义方法,添加操作按钮
},
],
rowStyle: function (row, index) {
var classesArr = ['success', 'info'];
var strclass = "";
if (index % 2 === 0) {//偶数行
strclass = classesArr[0];
} else {//奇数行
strclass = classesArr[1];
}
return { classes: strclass };
},//隔行变色
});
};
//得到查询的参数
oTableInit.queryParams = function (params) {
var temp = { //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
limit: params.limit, //页面大小
offset:params.offset
};
return temp;
};
return oTableInit;
};
function operateFormatter(value, row, index) {//赋予的参数
return [
'<a class="btn active disabled" href="#">编辑</a>',
'<a class="btn active" href="#">档案</a>',
'<a class="btn btn-default" href="#">记录</a>',
'<a class="btn active" href="#">准入</a>'
].join('');
}
</script>