在springMVC项目中,多次出现这个问题,所以记录一下,以便以后出现同样的问题时查看。
查看了网上好多博客,都是说前后端字段的类型不一样造成的,但是查看了一下字段的类型是一样的呀,不存在这个问题,那是怎么回事呢。
通过一个字段一个字段地排查,终于找到了原因:
(1)使用http等协议的关键词,比如status,在我的项目中传的参数名称为status,就出现了这个错误,把名称改了之后问题就不存在了,但是在Java后台使用这个字段是没有问题的。
(2)注意Date类型的数据格式,Date的标准数据格式是:Wed Jul 06 10:17:48 CST 2016,在前台传入后台的数据也是日期类型的,但是和Date的格式不一样,也是数据类型不一样的。
前台往后台上传数据时,在后台我们通过两种方式接收,
@RequestMapping("/hello.html") public ModelAndView jyxadvertisingList(HttpServletRequest request @RequestParam(value = "statusName", defaultValue = "0") int status, ModelAndView modelAndView) throws Exception { do something…… return modelAndView; }
@RequestMapping("/hello.html") public ModelAndView saveEditAdvertising(AdvertisingManage advertisingManage, HttpServletRequest request, ModelAndView modelAndView){ do something…… return modelAndView; }
参数比较少时直接通过@RequestParam注解的方式获取到参数,参数比较多时我们可以用对象接收,如上所示。