jsp前台代码:
<table id="table"></table>
为了防止出现因缓存等问题致使table数据出现不刷新等问题,首先先使用destroy清空一下table
$('#table').bootstrapTable('destroy');
然后初始化bootstrap-table
$('#table').bootstrapTable({
method: "get", //get方式提交
url: "admin/note/list", //获取数据
pagination: true, //显示分页条
pageNumber: 1, //初始化展示第一页
pageSize: 10, //每页10条数据
sidePagination: 'server', //在服务器端分页 (client为客户端)
queryParamsType: 'limit', //使用RESTFul格式的参数 可以不写 默认就是limit
queryParams:
function(params){
var temp = {
pageSize: params.limit,
pageIndex: params.offset,
// name_key:$('#searchContent').val()
};
return temp;
}, //向后台传的参数
dataType: "json", //返回值类型
onLoadSuccess: function(data) {
},//数据返回成功进行的操作
columns: [
{
field: 'Number',
title: '序号',
class: 'text-center',
formatter: function (value, row, index) {
if (row.id!=''){
return index+1;
}else{
return "";
}
}
},
{
field: 'noteName', //需要和返回的Key相同
title: '标题'
},
{
title: '操作',
class: 'text-center',
formatter: function(value, row, index) {
if(row.id!=''){
return '<a href="admin/note/modify/'+row.id+'" title="编辑"><i class="glyphicon glyphicon-edit"></i></a>' + ' ' +
'<a href="javascript:onDel(\''+row.id+'\');" title="删除"><i class="glyphicon glyphicon-remove"></i></a>'
}
}
}
]
});
后台查询数据和数量,将pageIndex和pageSize传入
List<Map<String,Object>> data = adminNoteService.pageList(pageIndex,pageSize);
long totalCount = adminNoteService.pageTotalCount();
在Dao层向mybatis传值有两种方式(当然还可以存入map传参等等这里直写了两种)
第一种 按照顺序接收参数
public List<Map<String,Object>> pageList(int pageSize,int pageIndex) throws Exception;
public long pageTotalCount() throws Exception;
通过#{0}接收第一个参数#{1}接收第二个参数
<select id="pageList" resultType="map">
select <include refid="columns"></include> from note limit #{0},#{1}
</select>
<select id="pageTotalCount" parameterType="int" resultType="long">
select count(*) from note
</select>
第二种 指定参数名传参
public List<Map<String,Object>> pageList(@Param("pageSize") int pageSize, @Param("pageIndex") int pageIndex) throws Exception;
public long pageTotalCount() throws Exception;
通过 @Param注解声明的name来接收参数 这种方法明确了参数名,推荐使用
<select id="pageList" resultType="map">
select <include refid="columns"></include> from note limit #{pageSize},#{pageIndex}
</select>
<select id="pageTotalCount" parameterType="int" resultType="long">
select count(*) from note
</select>
并将返回的data和size存入JSON中,因为很常用,所以提出了公共类,重写了toString方法
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class TableData {
private long totalCount;
private JSONArray rows;
public TableData(){
rows = new JSONArray();
}
public void setTotalCount(long totalCount){
this.totalCount= totalCount;
}
public void addRows(List<?> list){
rows.addAll(list);
}
public String toString(){
JSONObject json = new JSONObject();
json.accumulate("total", totalCount);
json.accumulate("rows", rows);
return json.toString();
}
}
然后返回String类型参数
TableData table = new TableData();
table.setTotalCount(totalCount);
table.addRows(data);
return table.toString();
这样 bootstrap-table就可以使用了