原因是,在控制器中,寫入參后,多了一個空格。且入參時,不再需要實體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異常。