layui表格数据格式错误问题

  • 问题描述:今天编写一个页面时,需要用到表格,将数据库中对应的值查出来,并返回到界面;
  • 效果应如图所示:

于是,使用了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;
	}



猜你喜欢

转载自blog.csdn.net/sj0613xz/article/details/78954407