用BootstrapTable展示列表:
        通过queryParams传参数到Spring的Controller中,request.getParameter("XXXX")获取不到任何参数。
       后台方法调用正常,页面列表正常展示;但默认的分页参数、自定义参数都没有值。 错在哪里?
        分页设置sidePagination为服务器端,没有效果用法不对吗?
$("#exampleTableEvents").bootstrapTable({
//url: "js/demo/bootstrap_table_test.json",
url: "/genTable/queryDemo",
method: "post",
queryParams:queryParams,
pageList: [5, 10, 20, 50, 100],
search: !0,
pagination: !0,
sidePagination: "client", //server
showRefresh: !0,
showToggle: !0,
showColumns: !0,/**查询条件与分页数据 */  
function queryParams(pageReqeust) {  
//console.log("-----params-----"); 
    pageReqeust.userName = "admin";  //
    pageReqeust.querys = $(".input-outline").val(); 
    pageReqeust.pageNo = this.offset;  
    pageReqeust.pageSize = this.pageNumber;  
    pageReqeust.length = 6;
console.log(pageReqeust);
    return pageReqeust;  
}

解决方案 »

  1.   

    能不能看看你的Controller
      

  2.   

    bootstrap-table.js中contentType改为 "application/x-www-form-urlencoded",同时data这个地方也改成json传值,源码是
    data: this.options.contentType === 'application/json' && this.options.method === 'post' ?JSON.stringify(data) : data
    可能有问题。
      

  3.   

    试试将  method: "post",  注释掉~看看效果如何
      

  4.   


    确实是这个问题 问什么不能用 post?
      

  5.   

    楼主你好,在method: "post"后面加上contentType : "application/x-www-form-urlencoded",包你解决问题,我也被这个坑了。因为如果不指定contentType 的话就会默认以application/json的方式发送数据,java就不能用getParameter拿到内容了,但是可以用输入流接收,我都试过了。
      

  6.   


    多谢! 刚才用php 调了半天 $_POST 就是为空。。
      

  7.   

    +1,自己解析request最快捷最简单,附加解析代码
    ServletInputStream in = request.getInputStream();
    byte [] buf = new byte[1024];
    int len = 0;
    StringBuilder b = new StringBuilder();
    while((len=in.read(buf))!=-1){
    b.append(new String(buf, 0, len,"UTF-8"));
    }
    in.close();
    String paramsStr = URLDecoder.decode(b.toString(),"UTF-8");
    Map<String, String> params = getParams(paramsStr);
    /**
         * 解析出url参数中的键值对
         */
        public static Map<String, String> getParams(String strUrlParam) {
            Map<String, String> mapRequest = new HashMap<String, String>();
            String[] arrSplit = null;
            arrSplit = strUrlParam.split("[&]");
            for (String strSplit : arrSplit) {
                String[] arrSplitEqual = null;
                arrSplitEqual = strSplit.split("[=]");
                //解析出键值
                if (arrSplitEqual.length > 1) {
                    //正确解析
                    mapRequest.put(arrSplitEqual[0], arrSplitEqual[1]);
                } else {
                    if (arrSplitEqual[0] != "") {
                        //只有参数没有值,不加入
                        mapRequest.put(arrSplitEqual[0], "");
                    }
                }
            }
            return mapRequest;
        }