2017-06-03 62 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"; 
    } 

}