慕田峪9158850
2022-07-20 16:24:29
我想為管理端(broadleaf 框架)創建自己的控制器,它擴展了 AdminBasicEntityController。有我的控制器代碼: public class AdminArticleController extends AdminBasicEntityController { @Autowired private ArticleService articleService; @Override public String addEntity(HttpServletRequest request, HttpServletResponse response, Model model, @PathVariable Map<String, String> pathVars, @ModelAttribute("entityForm") EntityForm entityForm, BindingResult result) throws Exception { return super.addEntity(request, response, model, pathVars, entityForm, result); } @Override public String saveEntityJson(HttpServletRequest request, HttpServletResponse response, Model model, @PathVariable Map<String, String> pathVars, @PathVariable("id") String id, @ModelAttribute("entityForm") EntityForm entityForm, BindingResult result, RedirectAttributes ra) throws Exception { return super.saveEntityJson(request, response, model, pathVars, id, entityForm, result, ra);// articleService.updateArticleEntity(); }}我還在 AdminServletConfig 文件中添加了下一個代碼:@Beanpublic AdminBasicEntityController adminBasicEntityController() { return new AdminArticleController();}
1 回答

開滿天機
TA貢獻1786條經驗 獲得超13個贊
你很親近!要覆蓋現有的 Broadleaf bean,請務必使用注釋中聲明的 bean 名稱。將您的 bean 命名為“blAdminBasicEntityController”,如下所示:
@Bean
public AdminBasicEntityController blAdminBasicEntityController() {
return new AdminArticleController();
}
您看到的錯誤是由于有兩個具有相同映射的 bean。發生這種情況是因為 AdminBasicEntityController 帶有注釋@Controller("blAdminBasicEntityController"),這意味著它將被組件掃描拾取并創建一個名為 的 bean blAdminBasicEntityController。由于 AdminArticleController 擴展了 AdminBasicEntityController,一旦創建了 AdminArticleController bean,AdminBasicEntityController 中的每個映射都會有 2 個映射。解決方案是覆蓋 Broadleaf bean,而不是添加一個額外的。
添加回答
舉報
0/150
提交
取消