后台返回JSON数据格式不符合layui.table要求的数据格式
在ssm项目中使用了layui前端框架,但是由于layui.table方法要求后台返回的数据具有严格的格式,在尝试了layui官方文档提供的方法无效之后,个人写了一个工具类,负责转换后台返回的数据格式,成功实现,下面分享一下我的方法:
1.首先建立一个LayuiTypeJson实体工具类
package com.card.until;
import java.util.ArrayList;
import java.util.List;
public class LayuiTypeJson<T> {
private int code=0;
private String msg="";
private int count;
private List<T> data=new ArrayList<T>();
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 int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public List<T> getData() {
return data;
}
public void setData(List<T> data) {
this.data = data;
}
}
2.在controller层使用此方法返回数据
@RequestMapping("/a3")
public LayuiTypeJson<User> findAllUsers() {
List<User> list= new ArrayList<User>();
list.add(new User("tom",20,"男"));
list.add(new User("jack",20,"男"));
list.add(new User("alice",20,"女"));
LayuiTypeJson<User> layuiTypeJson=new LayuiTypeJson<User>();
layuiTypeJson.setCount(list.size());
layuiTypeJson.setData(list);
return layuiTypeJson;
}
3.在layui提供的方法获取接口数据
<script> layui.use('table', function(){ var table = layui.table; table.render({ elem: '#demo' ,url:'/book/a3' ,cellMinWidth: 80 //全局定义常规单元格的最小宽度,layui 2.2.1 新增 ,cols: [[ {field:'name', width:80, title: '用户名', sort: true} ,{field:'age', width:80, title: '年龄'} ,{field:'sex', width:80, title: '性别', sort: true}
<span class="token punctuation">]<span class="token punctuation">] <span class="token punctuation">}<span class="token punctuation">)<span class="token punctuation">; <span class="token punctuation">}<span class="token punctuation">)<span class="token punctuation">;
</script>
4.前端成功渲染后台数据
我们很多人在调用layui表格数据的方法是往往会忽略其对数据格式的要求,导致数据格式不符合,提示数据状态异常,通过工具类的方法可以有效解决此问题。