一、问题描述
Bootstrap-table通过GET和POST获取后台数据时,提交给服务器的参数格式不一样。
- 通过GET方式提交的参数格式:
limit=5&offset=0&order_id=1&order_status=CLOSED
- 通过POST方式提交的参数格式:
{"limit":5,"offset":0,"order_id":1,"order_status":"CLOSED"}
二、解决办法
POST方式提交的参数格式实际上是json格式,因此在Controller方法中,加上@RequestBody参数,然后把参数转成json对象,接着就可以通过属性名获取值。代码示例如下:
@ResponseBody
@RequestMapping(value = "/getTable", method = RequestMethod.POST)
public List<Table> getTable(HttpServletRequest sRequest, @RequestBody String request) {
//使用Alibaba的fastjson将json格式字符串转成json对象
JSONObject reqJson = JSONObject.parseObject(request);
String id = reqJson.getString("order_id");
String status = reqJson.getString("order_status");
System.out.println("id: " + id + ", status: " + status);
List<OrderDetail> list = null;
//......省略.....
return list;
}
重点就是第3行中的"@RequestBody String request"!!!
三、结束语
欢迎关注我的博客专栏《SSM整合之企业级后台管理系统》,学习上有任何疑问还可以加群交流哦:584017112