使用layui进行方法渲染列表时渲染不上,返回的数据不符合规范,正确的成功状态码应为:“code“:0,解决办法。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

使用springboot+layui编写后台管理系统遇到的一些问题,以及如何解决:

一、使用layui进行方法渲染列表时渲染不上,返回的数据不符合规范,正确的成功状态码应为:“code”: 0?

页面中列表主要代码

//这里只有主要的代码
 table.render({
              elem : '#test'
              ,url : '/userController/findAll'
              ,toolbar : '#toolbarDemo'
              ,method: "post"
              ,contentType: "application/json"
              ,id : 'tableReload'
              ,page: true
              ,parseData : function (data) {
                debugger
                return {
                  "code" : data.code,
                  "msg" : data.msg,
                  "count": data.total,
                }
              }
           	  ,cols: [[
		  {field:'user_id', width:77, title: '序号', sort: true}
         ,{field:'user_name', width:200, title: '用户昵称'}
         ,{field:'user_pwd', width:200, title: '用户密码'}
         ,{field:'user_tel', width:200 , title: '用户联系方式'}
         ,{field:'user_email', width:200, title: '用户邮箱'}
			         ]]

后台主要代码

	 /**
     * 后台管理系统查询用户列表
     */
    @RequestMapping(value = "/findAll",method  = RequestMethod.POST)
    @ResponseBody
    public List<User> findAll(
            @RequestBody(required = false) User user,
            @RequestParam(defaultValue = "10") Integer page,
            @RequestParam(defaultValue = "1") Integer size
    ){
        List<User> all = userService.findAll(user,page,size);
        return all;
    }

在这里插入图片描述
而且页面中也显示能获取到后台返回的数据,这就让我很纳闷,明明后台也返回数据了前台也就收到数据了而且渲染的时候字段也都是一样的就是渲染不上。。。。
其实layui官网是给了解释,
在这里插入图片描述

哎这就是不好好看官方文档,结果白白忙了一小时也没有改好,最后终于晓得返回的格式不对,然后就是后台创建一个公用的返回对象。

package cn.gok.common;

import com.fasterxml.jackson.annotation.JsonInclude;

import java.io.Serializable;

/**
 * 响应数据
 *
 * 返回前端的字段中如果有为null的字段,使其为null的字段不显示
 */
@JsonInclude(value= JsonInclude.Include.NON_NULL)
public class ResultVO<T> implements Serializable {

    private static final long serialVersionUID = -4414926978700453869L;

    /** 状态码 0 表示成功 */
    private Integer code;

    /** 状态码说明 */
    private String msg;

    /** 返回数据*/
    private T data;

    /** 数据长度 */
    private Integer total;


    public ResultVO() {
    }

    public ResultVO(Integer code, String msg, T data, Integer total) {
        this.code = code;
        this.msg = msg;
        this.data = data;
        this.total = total;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    public Integer getTotal() {
        return total;
    }

    public void setTotal(Integer total) {
        this.total = total;
    }

    @Override
    public String toString() {
        return "ResultVO{" +
                "code=" + code +
                ", msg='" + msg + '\'' +
                ", data=" + data +
                ", total=" + total +
                '}';
    }
}

因为这个类需要经常使用,所以写了一个工具类不需要每次都创建它

package cn.gok.utils;


import cn.gok.common.ResultVO;

/**
 * 响应数据
 */
public class ResultUtils {


    /**
     * success 信息
     * @param msg 信息
     * @param <T> 泛型
     * @return 响应数据
     */
    public static <T> ResultVO<T> successCodeMsg(String msg) {
        ResultVO<T> resultVO = new ResultVO<>();
        resultVO.setCode(0);
        resultVO.setMsg(msg);
        resultVO.setData(null);
        return resultVO;
    }

    /**
     * error 信息
     * @param msg 信息
     * @param <T> 泛型
     * @return 响应数据
     */
    public static <T> ResultVO<T> errorCodeMsg(String msg) {
        ResultVO<T> resultVO = new ResultVO<>();
        resultVO.setCode(1);
        resultVO.setMsg(msg);
        resultVO.setData(null);
        return resultVO;
    }

    /**
     * success 数据/信息
     * @param msg 信息
     * @param data 数据
     * @param <T> 泛型
     * @return 响应数据
     */
    public static <T> ResultVO<T> successDataCodeMsg(String msg,T data) {
        ResultVO<T> resultVO = new ResultVO<>();
        resultVO.setCode(0);
        resultVO.setMsg(msg);
        resultVO.setData(data);
        return resultVO;
    }

    /**
     * success 数据/信息/长度
     * @param msg 信息
     * @param data 数据
     * @param <T> 泛型
     * @return 响应数据
     */
    public static <T> ResultVO<T> successDataCodeMsgTotal(String msg,T data,int total) {
        ResultVO<T> resultVO = new ResultVO<>();
        resultVO.setCode(0);
        resultVO.setMsg(msg);
        resultVO.setData(data);
        resultVO.setTotal(total);
        return resultVO;
    }


}

创建好再去对我们的controller进行修改,将数据进行封装到ResultVO中。

   /**
     * 后台管理系统查询用户列表
     */
    @RequestMapping(value = "/findAll",method  = RequestMethod.POST)
    @ResponseBody
    public ResultVO<Object> findAll(
            @RequestBody(required = false) User user,
            @RequestParam(defaultValue = "10") Integer page,
            @RequestParam(defaultValue = "1") Integer size
    ){
        ResultVO<Object> all = userService.findAll(user,page,size);
        return all;
    }

在这里插入图片描述
至此这个问题完美解决。

总结:

写代码不知道的不要一直闷着头去看自己的代码,自己去想为啥不正确,要换个思路,面向百度,面向文档去开发。
这是使用layui其中的一个要注意的点,还有遇到的问题我会去记录下来,方便下次自己在遇到不知道怎么去解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值