2017-06-03 100 views
0

我是新來的闊葉。闊葉覆蓋控制器方法

我有問題,我想掩蓋,消除在管理我的訂單方法:

創建控制器:

public class NewOrderController extends AdminBasicEntityController { 

    private static final Logger LOGGER = Logger.getLogger(NewOrderController.class); 

    protected static final String SECTION_KEY = "order"; 

    @Override 
    protected String getSectionKey(Map<String, String> pathVars) { 
     if (super.getSectionKey(pathVars) != null) { 
      return super.getSectionKey(pathVars); 
     } 
     return SECTION_KEY; 
    } 

    @Override 
    @RequestMapping(
     value = {"/{id}/delete"}, 
     method = {RequestMethod.POST} 
    ) 
    public String removeEntity(HttpServletRequest request, HttpServletResponse response, Model model, Map<String, String> pathVars, String id, EntityForm entityForm, BindingResult result, RedirectAttributes ra) throws Exception { 

     LOGGER.info("wywołanie nadpisane metody: " + NewOrderController.class.toString()); 
     return "String"; 
    } 


} 
在的applicationContext-admin.xml的

地址:

所有的時間它叫我不重寫n方法。

回答

1

當您創建控制器時,該bean必須位於servlet上下文中,而不是位於根上下文中。如果您正在修改applicationContext-admin.xml,那麼您實際上是將該bean添加到根上下文中。

將您的豆添加到applicationContext-servlet-admin.xml或添加一個新的<component-scan>條目到applicationContext-servlet-admin.xml掃描您的新豆。

還有一件事:你可能不希望覆蓋整個AdminBasicEntityController,它看起來像你只是想覆蓋/order/*方法。在這種情況下,您應該使用@Controller註釋您的控制器併爲您的部分鍵添加@RequestMapping,如下所示:

@Controller 
@RequestMapping("/" + SECTION_KEY) 
public class NewOrderController extends AdminBasicEntityController { 

    private static final Logger LOGGER = Logger.getLogger(NewOrderController.class); 

    protected static final String SECTION_KEY = "order"; 

    @Override 
    protected String getSectionKey(Map<String, String> pathVars) { 
     if (super.getSectionKey(pathVars) != null) { 
      return super.getSectionKey(pathVars); 
     } 
     return SECTION_KEY; 
    } 

    @Override 
    @RequestMapping(
     value = {"/{id}/delete"}, 
     method = {RequestMethod.POST} 
    ) 
    public String removeEntity(HttpServletRequest request, HttpServletResponse response, Model model, Map<String, String> pathVars, String id, EntityForm entityForm, BindingResult result, RedirectAttributes ra) throws Exception { 

     LOGGER.info("wywołanie nadpisane metody: " + NewOrderController.class.toString()); 
     return "String"; 
    } 

}