BootstrapTable的queryParams参数在Controller不能接收?

ljcsdnsb 2016-07-15 10:51:57
用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;
}
...全文
20529 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2020-07-24
  • 打赏
  • 举报
回复
大佬,我的里面的sort参数老是undefined,求解
KaZuI 2020-06-09
  • 打赏
  • 举报
回复
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
hello_word521 2018-09-08
  • 打赏
  • 举报
回复
引用 10 楼 qq632680822 的回复:
引用 7 楼 a417064257 的回复:
楼主你好,在method: "post"后面加上contentType : "application/x-www-form-urlencoded",包你解决问题,我也被这个坑了。因为如果不指定contentType 的话就会默认以application/json的方式发送数据,java就不能用getParameter拿到内容了,但是可以用输入流接收,我都试过了。
正解

+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;
}

HSuperYue 2017-05-25
  • 打赏
  • 举报
回复
引用 7 楼 a417064257 的回复:
楼主你好,在method: "post"后面加上contentType : "application/x-www-form-urlencoded",包你解决问题,我也被这个坑了。因为如果不指定contentType 的话就会默认以application/json的方式发送数据,java就不能用getParameter拿到内容了,但是可以用输入流接收,我都试过了。
正解
HSuperYue 2017-05-25
  • 打赏
  • 举报
回复
引用 6 楼 qq_16547017 的回复:
楼主怎么解决的,
谢谢老哥
刚好遇見伱 2017-03-03
  • 打赏
  • 举报
回复
引用 7 楼 a417064257 的回复:
楼主你好,在method: "post"后面加上contentType : "application/x-www-form-urlencoded",包你解决问题,我也被这个坑了。因为如果不指定contentType 的话就会默认以application/json的方式发送数据,java就不能用getParameter拿到内容了,但是可以用输入流接收,我都试过了。
多谢! 刚才用php 调了半天 $_POST 就是为空。。
起床灰常困难 2017-01-21
  • 打赏
  • 举报
回复
楼主你好,在method: "post"后面加上contentType : "application/x-www-form-urlencoded",包你解决问题,我也被这个坑了。因为如果不指定contentType 的话就会默认以application/json的方式发送数据,java就不能用getParameter拿到内容了,但是可以用输入流接收,我都试过了。
karuomo 2017-01-13
  • 打赏
  • 举报
回复
楼主怎么解决的,
哀伤的小手_ 2016-12-25
  • 打赏
  • 举报
回复
引用 4 楼 dsfqgds 的回复:
试试将 method: "post", 注释掉~看看效果如何
确实是这个问题 问什么不能用 post?
dsfqgds 2016-12-13
  • 打赏
  • 举报
回复
试试将 method: "post", 注释掉~看看效果如何
woyang5hao 2016-09-27
  • 打赏
  • 举报
回复
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 可能有问题。
PierreStone 2016-08-30
  • 打赏
  • 举报
回复
同问! 楼主解决了没
只怕不在遇上 2016-07-15
  • 打赏
  • 举报
回复
能不能看看你的Controller

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧