Spring中使用@PathVariable注解添加带点号导致参数被截取获取不全的解决办法
因为需要获取前段传来的表单JSON数据,当数据中存在ip地址的数据时总是出现JSON数据不合法的错误。发现时服务器端获取的数据被截取导致的。
- 原来问题代码如下
@RequestMapping("/outToExcel/{logType}/{search}")
@ResponseBody
public ModelAndView outLogToExcel(@PathVariable String logType,
HttpServletResponse response ,
HttpServletRequest request,
@PathVariable String search){
try {
sysLogService.exportLogExcel(logType, response, request, search);
} catch (Exception e){
e.printStackTrace();
}
return null;
}
经过 找到了解决办法,在@RequestMapping的value中使用SpEL来表示,value中的{search}换成{search:.+}即可解决。
- 修改后代码如下
@RequestMapping("/outToExcel/{logType}/{search:.+}")
@ResponseBody
public ModelAndView outLogToExcel(@PathVariable String logType,
HttpServletResponse response ,
HttpServletRequest request,
@PathVariable String search){
try {
sysLogService.exportLogExcel(logType, response, request, search);
} catch (Exception e){
e.printStackTrace();
}
return null;
}