一、問題描述
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