2017-06-03 1 views
0

Je suis nouveau sur broadleaf.méthode de contrôleur de remplacement de broadleaf

J'ai problème, je voulais obscurcir la méthode qui supprime ma commande admin:

Je crée contrôleur:

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"; 
    } 


} 

dans applicationContext-admin.xml

ajouter:

Tout le temps il m'appelle le non écrasé n méthode.

Répondre

1

Lorsque vous créez un contrôleur, le bean doit être dans le contexte de servlet, pas dans le contexte racine. Si vous modifiez applicationContext-admin.xml, vous ajoutez réellement le bean au contexte racine.

Ajoutez votre haricot à applicationContext-servlet-admin.xml ou ajouter une nouvelle entrée dans <component-scan>applicationContext-servlet-admin.xml pour scanner votre nouveau bean.

Encore une chose: vous ne voulez probablement pas remplacer l'intégralité de AdminBasicEntityController et il semble que vous souhaitiez simplement remplacer les méthodes /order/*. Dans ce cas, vous devez annoter votre contrôleur avec @Controller et ajouter un @RequestMapping pour votre clé de section comme ceci:

@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"; 
    } 

}