后台实现通用的分页查询json数据的返回

后台实现通用的分页查询json数据的返回

在bean中创建一个Msg对象,封装查询好的页面信息,包括状态码以及提示信息

public class Msg {
	//状态码  100-成功  200-失败 
	private int code;
	//提示信息
	private String msg;
	
	//用户要返回给浏览器的数据
	private Map<String , Object> extend = new HashMap<String, Object>() ;
	
	public static Msg success() {
		Msg result = new Msg();
		result.setCode(100);
		result.setMsg("处理成功!");
		return result;
	}
	
	public static Msg fail() {
		Msg result = new Msg();
		result.setCode(200);
		result.setMsg("处理失败!");
		return result;
	}
	
	public Msg add(String key,Object value) {
		this.getExtend().put(key, value);
		return this;
	}
	
	public int getCode() {
		return code;
	}

	public void setCode(int code) {
		this.code = code;
	}

	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}

	public Map<String, Object> getExtend() {
		return extend;
	}

	public void setExtend(Map<String, Object> extend) {
		this.extend = extend;
	} 
}

后台返回拼装好分页的json数据

	//查询供应商数据(分页查询)
	//ResposeBody正常工作需要导入jackson包
	@RequestMapping("/suppliers")
	@ResponseBody
	public Msg getSupplierWithJson(@RequestParam(value="pn",defaultValue="1")Integer pn) {
			PageHelper.startPage(pn, 5);
			//startPage后面紧跟的查询就是一个分页查询
			List<Supplier> suppliers = supplierService.getAll();
			//,使用pageinfo包装查询后的结果,只需要将pageinfo交给页面即可
			//,封装了详细的分页信息,包括有我们查询出来的数据,传入连续显示的页数
			PageInfo page = new PageInfo(suppliers,5);
			//通过add方法将查询好的分页信息拼装到Msg上
			return Msg.success().add("PageInfo", page);
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,我们需要生成一个包含多条数据JSON 数据,例如: ```json { "data": [ {"id": 1, "name": "Alice", "age": 20}, {"id": 2, "name": "Bob", "age": 22}, {"id": 3, "name": "Charlie", "age": 25}, {"id": 4, "name": "David", "age": 30}, {"id": 5, "name": "Emily", "age": 28}, {"id": 6, "name": "Frank", "age": 35}, {"id": 7, "name": "Grace", "age": 18}, {"id": 8, "name": "Henry", "age": 27}, {"id": 9, "name": "Ivy", "age": 23}, {"id": 10, "name": "Jack", "age": 32}, {"id": 11, "name": "Kate", "age": 29}, {"id": 12, "name": "Leo", "age": 26}, {"id": 13, "name": "Maggie", "age": 21}, {"id": 14, "name": "Nancy", "age": 24}, {"id": 15, "name": "Oliver", "age": 33}, {"id": 16, "name": "Penny", "age": 31}, {"id": 17, "name": "Quinn", "age": 19}, {"id": 18, "name": "Ray", "age": 36}, {"id": 19, "name": "Sandy", "age": 37}, {"id": 20, "name": "Tom", "age": 34} ] } ``` 接着,我们可以使用 JavaScript 编写一个函数来实现分页效果: ```javascript function paginate(data, page, pageSize) { const start = (page - 1) * pageSize; const end = start + pageSize; const paginatedData = data.slice(start, end); return paginatedData; } ``` 其中,`data` 表示要分页JSON 数据,`page` 表示当前页数,`pageSize` 表示每页显示的数据量。函数会根据当前页数和每页显示的数据量来计算出应该显示哪些数据,并返回分页后的数据。 例如,我们可以使用以下代码来测试分页效果: ```javascript const jsonData = { "data": [ {"id": 1, "name": "Alice", "age": 20}, {"id": 2, "name": "Bob", "age": 22}, {"id": 3, "name": "Charlie", "age": 25}, {"id": 4, "name": "David", "age": 30}, {"id": 5, "name": "Emily", "age": 28}, {"id": 6, "name": "Frank", "age": 35}, {"id": 7, "name": "Grace", "age": 18}, {"id": 8, "name": "Henry", "age": 27}, {"id": 9, "name": "Ivy", "age": 23}, {"id": 10, "name": "Jack", "age": 32}, {"id": 11, "name": "Kate", "age": 29}, {"id": 12, "name": "Leo", "age": 26}, {"id": 13, "name": "Maggie", "age": 21}, {"id": 14, "name": "Nancy", "age": 24}, {"id": 15, "name": "Oliver", "age": 33}, {"id": 16, "name": "Penny", "age": 31}, {"id": 17, "name": "Quinn", "age": 19}, {"id": 18, "name": "Ray", "age": 36}, {"id": 19, "name": "Sandy", "age": 37}, {"id": 20, "name": "Tom", "age": 34} ] }; const page = 2; const pageSize = 5; const paginatedData = paginate(jsonData.data, page, pageSize); console.log(paginatedData); ``` 输出结果如下: ```javascript [ {"id": 6, "name": "Frank", "age": 35}, {"id": 7, "name": "Grace", "age": 18}, {"id": 8, "name": "Henry", "age": 27}, {"id": 9, "name": "Ivy", "age": 23}, {"id": 10, "name": "Jack", "age": 32} ] ``` 可以看出,函数成功将第二页的数据(ID 为 6 到 10 的数据返回了出来。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值