问题描述
- 前端ligerui框架的grid控件, 后端springmvc获取分页问题
-
前端ligerui框架 的grid控件 添加参数 contentType:'application/json', 后端springmvc就获取分页page有问题?如果前端不加contentType及parms参数, 后端不加@RequestBody参数,能获取到page、pagesize。
如果前端加contentType及parms参数, 后端加@RequestBody参数,报错:java.lang.NullPointerException
如果前端不加contentType,加parms参数, 后端加@RequestBody参数,报错:Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported。
---------------------------------------附:----------------------------------------
前端liger ui代码:function getTpOneCxjgAjax_Load() { tpone_grid = $("#grid_tpone_cxjg").ligerGrid({ columns: tpone_column2, //dataType: 'server', dataAction: 'server', usePager: true, checkbox: true, type:"POST", contentType:'application/json', //此行注释掉,报错Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported。 dataType: 'json', url:"tpone_getTpOneCxtjTest", parms: { "zz": $("#zz").val(), "sp": $("#sp").val(), "pp": $("#pp").val(), "nf": $("#nf").val() }, pagesizeParmName:"pagesize", pageParmName: "page", width: '100%', height: '99.8%', pageSizeOptions: [20, 100, 200, 500,1000] }); //tpone_grid.loadServerData(); //从后台数据库刷新数据 }
后端java springmvc代码:
@RequestMapping(value = "tpone_getTpOneCxtjTest", method = RequestMethod.POST) public @ResponseBody String getTpOneCxtjTest(@RequestBody TpOneCxtj2Vo tpOneCxtj2Vo, @RequestParam(value="page",required=false) Integer page, @RequestParam(value="pagesize",required=false) Integer pagesize) throws Exception { //System.out.println(request.getParameter("pagesize") + " 前台获取分页数。。。" +request.getParameter("page")); System.out.println("------------获取分页数@RequestParam: "+page+" --pagesize: "+pagesize); String tpOneCxjgList = tpOneCxjgService.getTpOneCxjg2Service(tpOneCxtj2Vo, page, pagesize); return tpOneCxjgList; }
解决方案
第一次访问的时候,你要给自动添加一个:
if(page==null)
{
page = 0 ;
}
if(pagesize==null)
{
pagesize=10;
}
没用过你说的这个框架,之前用easy ui 的datagrid的时候,会自动传递分页数据(需要在生成datagrid的时候,配置),你检查下是不是前台没配置,后台可以像上面那样判断一下。
解决方案二:
好的自己!在线指导思想!
时间: 2024-10-29 23:16:35