首页 > 其他 > 详细

layui-table-render 表格重载 500错误 中文乱码等

时间:2020-10-24 22:56:04      阅读:113      评论:0      收藏:0      [点我收藏+]

最近做layui-表格数据的时候发现遇到不少坑

第一:加载findAll所有数据的时候 返回json数据到网页上是‘?‘ 

技术分享图片

 

 

 @RequestMapping("/findAll")
    @ResponseBody
    public String findAll(int page, int limit){
        int start =(page-1)*limit;
        List<User> userList = userService.findAll(start, limit);

        int count = userService.getCount();

        /*HashMap<String, Object> map = new HashMap<String,Object>();
        map.put("code",0);
        map.put("count",count);
        map.put("data",userList);*/
         //用Json类封装前台中文都是?
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("code",0);
        jsonObject.put("count",count);
        jsonObject.put("data",userList);
        System.out.println(jsonObject.toString());
        //System.out.println("findAll-->map:"+map);
        return jsonObject.toString();
    }

解决 返回Map类型 中文类型就能正常显示。

@RequestMapping("/findAll")
    @ResponseBody
    public Map findAll(int page, int limit){
        int start =(page-1)*limit;
        List<User> userList = userService.findAll(start, limit);

        int count = userService.getCount();

        HashMap<String, Object> map = new HashMap<String,Object>();
        map.put("code",0);
        map.put("count",count);
        map.put("data",userList);
         //用Json类封装前台中文都是?
        /*JSONObject jsonObject = new JSONObject();
        jsonObject.put("code",0);
        jsonObject.put("count",count);
        jsonObject.put("data",userList);
        System.out.println(jsonObject.toString());*/
        System.out.println("findAll-->map:"+map);
        return map;
    }

 

第二:表格重载的时候,Optional int parameter ‘page‘ is present but cannot be translated into a null value due to being declared as a primitive type. 

原因:技术分享图片

 

 技术分享图片

 

 

技术分享图片

 

 前台明明是有参数传入的,分页的page好像是默认自带的,最后找到是Controller层对应的方法有问题

@RequestMapping(value = "/selectByCondition",produces="text/html;charset=utf-8")
@ResponseBody
public Map selectByCondition(User user,int page, int limit){
System.out.println("selectByCondition执行了");
System.out.println("user:"+user);
System.out.println("page:"+page);
System.out.println("limit:"+limit);
int start =(page-1)*limit;
List<User> userList = userService.selectByCondition( user,start,limit);
System.out.println("userList:"+userList);
int count = userService.getCountByCondition(user);
System.out.println("count:"+count);
HashMap<String, Object> map = new HashMap<String,Object>();
System.out.println("map执行了吗?");
map.put("code",0);
map.put("count",count);
map.put("data",userList);
//用Json类封装前台中文都是?
/*JSONObject jsonObject = new JSONObject();
jsonObject.put("code",0);
jsonObject.put("count",count);
jsonObject.put("data",userList);
System.out.println(jsonObject.toString());*/
/*System.out.println("map:"+map);*/
return map;
}

把Map类型的返回值改成String类型返回json.toString就没问题了

 @RequestMapping(value = "/selectByCondition",produces="text/html;charset=utf-8")
    @ResponseBody
    public String selectByCondition(User user,int page, int limit){
        System.out.println("selectByCondition执行了");
        System.out.println("user:"+user);
        System.out.println("page:"+page);
        System.out.println("limit:"+limit);
        int start =(page-1)*limit;
        List<User> userList = userService.selectByCondition( user,start,limit);
        System.out.println("userList:"+userList);
        int count = userService.getCountByCondition(user);
        System.out.println("count:"+count);
        /*HashMap<String, Object> map = new HashMap<String,Object>();
        System.out.println("map执行了吗?");
        map.put("code",0);
        map.put("count",count);
        map.put("data",userList);*/
        //用Json类封装前台中文都是?
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("code",0);
        jsonObject.put("count",count);
        jsonObject.put("data",userList);
        System.out.println(jsonObject.toString());
        /*System.out.println("map:"+map);*/
        return jsonObject.toString();
    }

 

 

返回Json类型就没问题了 而且这次中文居然没有乱码 实在是amazing啊

技术分享图片

 

 技术分享图片

 

 所以总结:分页的时候重载table.render的数据一定要是是Json格式的字符串,Map好像是不行的。

加载数据的时候Map和Json.toString都可以,而且Map没有乱码至少我这里是这样的 

layui-table-render 表格重载 500错误 中文乱码等

原文:https://www.cnblogs.com/cocobear9/p/13869626.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!