Spingboot项目中layui Table的参数传递问题记录

Spingboot项目中layui Table的参数传递问题记录


最近在做springboot的项目,前端用到了layui,在使用layui的table进行数据请求时,前端往后台传参时,遇到了点问题,由于自己是新手,所以记录一下

问题描述

当前端的table使用reload方法重载时,设置的各个参数的情况如下,
(1):方法一

 tableID.reload({
                url: "../../search"
                ,contentType: 'application/json'
                ,where: {
                    "ID": ID,
                    "status": status,
                }
                ,height: '580'
                ,method: 'post' //如果无需自定义HTTP类型,可不加该参数
                ,request: {
                    pageName: 'curr' //页码的参数名称,默认:page
                    ,limitName: 'nums' //每页数据量的参数名,默认:limit
                }
                ,loading: true
                ,page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
                    layout: ['count', 'prev', 'page', 'next', 'limit', 'refresh', 'skip']//自定义分页布局
                    ,limits:[5,10]
                    ,first: false //不显示首页
                    ,last: false //不显示尾页
                }
                , text: {
                    none: '暂无相关数据!',
                },
            });

后台的search取参数时需要使用下面的方式:

 @RequestMapping(value="/search")
    public static String search(HttpServletRequest request,
            @RequestParam(value = "curr",required = false,defaultValue = "1")String curr,
            @RequestParam(value = "nums",required = false,defaultValue = "10")String nums) {

        JSONObject jsonObject = getJSONParam(request);
        if (jsonObject != null){
            System.out.println("contractID:"+jsonObject.getString("contractID"));
            System.out.println("status:"+jsonObject.getString("status"));
        }

        System.out.println("curr:"+curr);
        System.out.println("nums:"+nums);
        return "success";
    }

上面的代码中getJSONParam()的代码如下:

 /**
     * 当psot键值对形式的数据时,将其转换为json对象
     * @param request
     * @return
     */
    public static JSONObject getJSONParam(HttpServletRequest request){
        JSONObject jsonParam = null;
        try {
            // 获取输入流
            BufferedReader streamReader = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));

            // 写入数据到Stringbuilder
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = streamReader.readLine()) != null) {
                sb.append(line);
            }
            jsonParam = JSONObject.parseObject(sb.toString());
            // 直接将json信息打印出来
            //System.out.println(jsonParam.toJSONString());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return jsonParam;
    }

(2):方法二
当前端的reload()方法中的contentType参数去除掉之后,:

 tableID.reload({
                url: "../../search"
                ,where: {
                    "ID": ID,
                    "status": status,
                }
                ,height: '580'
                ,method: 'post' //如果无需自定义HTTP类型,可不加该参数
                ,request: {
                    pageName: 'curr' //页码的参数名称,默认:page
                    ,limitName: 'nums' //每页数据量的参数名,默认:limit
                }
                ,loading: true
                ,page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
                    layout: ['count', 'prev', 'page', 'next', 'limit', 'refresh', 'skip']//自定义分页布局
                    ,limits:[5,10]
                    ,first: false //不显示首页
                    ,last: false //不显示尾页
                }
                , text: {
                    none: '暂无相关数据!',
                },
            });

后端的接口取参方法就变成了下面的方法:

 @RequestMapping(value="/search")
 public static String search(
            @RequestParam(value = "contractID",required = false)String ID,
            @RequestParam(value = "status",required = false)String status,
            @RequestParam(value = "curr",required = false,defaultValue = "1")String curr,
            @RequestParam(value = "nums",required = false,defaultValue = "10")String nums) {

        System.out.println("ID:"+ID);
        System.out.println("status:"+status);
        System.out.println("curr:"+curr);
        System.out.println("nums:"+nums);
        return "success";
    }

就不需要用到对request里面的请求参数进行解析了。

由于刚刚接触,目前还不太明白其中缘由,所以简单记录一下。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值