bootstrap-table与mybatis结合使用

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就可以使用了



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值