在springmvc+mybatis的项目中,利用mybatis分页插件mybatis-paginator进行分页查询,结果出现了500异常,后端又没有明显的报错。
原来的写法,返回Map对象,由springmvc里面的机制转为json对象,这样就会导致,在转json过程中的报错,都隐藏了,无法抛出,前端获取不到正确的数据,
最后就出现了500的异常。
@RequestMapping(value = "/query")
@ResponseBody
public Map<String, Object> data(HttpServletRequest request, HttpServletResponse response, CreditloanInfoParams params) {
Map<String, Object> data = new HashMap<String, Object>();
if(params==null){
params=new CreditloanInfoParams();
}
PageList<CreditloanInfo> list = (PageList<CreditloanInfo>) creditloanInfoService.getCreditloanInfoListData(params);
data.put("total", list.getPaginator().getTotalCount());
data.put("rows", list);
return data;
}
改成使用fastJson主动转化为json格式的字符串,这样的好处是,转json过程中如果出现错误,会有很明确的提示。
@SuppressWarnings("unchecked")
@RequestMapping(value = "/query")
@ResponseBody
public String data(HttpServletRequest request, HttpServletResponse response, BlackParams params) {
//Map<String, Object> data = new HashMap<String, Object>();
/*PageList<Blacklist> blackDatas = (PageList<Blacklist>) blackService.getPageData(params);
data.put("total", blackDatas.getPaginator().getTotalCount());
data.put("rows", blackDatas);*/
//blackService.getPageData(params);
/* Map data = new HashMap();
PageList<Blacklist> blackDatas = blackService.getBlackListData(params);
data.put("total", blackDatas.getPaginator().getTotalCount());
data.put("rows", blackDatas);*/
return JSON.toJSONString(blackService.getPageData(params));
}
最后发现是转json中出现了空指针异常。修复后,问题解决。