- 问题描述:今天编写一个页面时,需要用到表格,将数据库中对应的值查出来,并返回到界面;
- 效果应如图所示:
于是,使用了layui的数据表格,但是遇到了一个问题,数据有返回,但是页面加载不出来。
仔细检查后发现,我的java中代码返回的是List格式的数据;
List <Columns> list =columnService.getAllCols(tabId, id);
return list;
然而layui的table默认返回的数据格式为:
response: { //定义后端 json 格式,详细参见官方文档
code: 0,
msg: "",
count: 1000,
data: []
}
即,为如下格式:
{"code":0,"msg":"","count":1000,"data":[{"colName":"ID","colNo":0,"collator":"","comments":"","dbId":1,"defVal":"","deleted":"","dispersion":0,"domainId":0,"histogram":"","isHide":"","isSerial":"F","isVirtual":"","maxVal":"","minVal":"","notNull":"F","repetRate":0,"scale":-1,"serialId":0,"tableId":1048576,"timestampT":" ","typeName":"INTEGER","varying":"F","vcolNo":0,"vertNo":0},{"colName":"NAME","colNo":1,"collator":"","comments":"","dbId":1,"defVal":"","deleted":"","dispersion":0,"domainId":0,"histogram":"","isHide":"","isSerial":"F","isVirtual":"","maxVal":"","minVal":"","notNull":"F","repetRate":0,"scale":10,"serialId":0,"tableId":1048576,"timestampT":" ","typeName":"CHAR","varying":"F","vcolNo":0,"vertNo":0}]}
- 解决方案:将返回的list改成对应格式的对象即可:
代码如下:
@RequestMapping(value="/getColsInfo")
@ResponseBody
public String getColsInfo(HttpServletRequest req, HttpServletResponse resp){
String tableId=req.getParameter("tableId");
String dbId=req.getParameter("dbId");
int id=Integer.parseInt(dbId);
int tabId=Integer.parseInt(tableId);
List <Columns> list =columnService.getAllCols(tabId, id);
//list转成json
// JSONArray array =new JSONArray();
JSONObject obj=new JSONObject();
//前台通过key值获得对应的value值
obj.put("code", 0);
obj.put("msg", "");
obj.put("count",1000);
obj.put("data",list);
// array.add(obj);
return obj.toString();
// return list;
}