原因是,在控制器中,写入参后,多了一个空格。且入参时,不再需要实体bean,若有,报错。
如下:
@RequestMapping("/zhouyiAuthorModify/{id}") public ModelAndView zhouyiAuthorModify(@PathVariable("id ") Integer id,ZhouyiAuthor zhuoyiAuthor) { //多了一个空格。另外入参也有问题,不能把zhuoyiAuthor作为入参。 ModelAndView mv = new ModelAndView("zhouyiAuthorModify"); mv.addObject("zhouyiAuthor",zhouyiAuthorService.getZhouyiContentAuthorById(id) ); return mv; }
报错为:
Missing URI template variable 'id' for method parameter of type Integer
正确的代码如下:
@RequestMapping("/zhouyiAuthorModify/{id}") public ModelAndView zhouyiAuthorModify(@PathVariable("id") Integer id) { ModelAndView mv = new ModelAndView("zhouyiAuthorModify"); mv.addObject("zhouyiAuthor",zhouyiAuthorService.getZhouyiContentAuthorById(id) ); return mv; }
在入参时,因为有id作为唯一键,不用再传入bean了,直接查找就可。如果再传入实体bean,会报告错误,参数id异常。