Spring MVC 3: Comment fournir du contenu dynamique à une page d'erreur pour les erreurs HTTP 404?

Ce que je veux:

Je veux fournir un modèle pour l'erreur HTTP 404 page. Au lieu d'écrire une erreur statique de la Page, ce qui est spécifié dans web.xml je veux utiliser un
exception contrôleur qui gère les erreurs HTTP 404.

Ce que j'ai fait:

Supprimé page d'erreur de balise à partir de la web.xml:

<error-page>
    <error-code>404</error-code>
    <location>/httpError.jsp</location>
</error-page>

et mis en œuvre l'exception suivante méthodes de gestionnaire à l'intérieur de mon AbstractController classe:

@ExceptionHandler(NoSuchRequestHandlingMethodException.class)
public ModelAndView handleNoSuchRequestException(NoSuchRequestHandlingMethodException ex) {
    ModelMap model = new ModelMap();
        model.addAttribute("modelkey", "modelvalue");
        return new ModelAndView("/http404Error", model);
}

@ExceptionHandler(NullPointerException.class)
public ModelAndView handleAllExceptions(NullPointerException e) {
        ModelMap model = new ModelMap();
        model.addAttribute("modelkey", "modelvalue");
        return new ModelAndView("/exceptionError", model);
}

Ce qui est fait:

Il travaille pour trouver des exceptions, mais pas de code d'erreur HTTP statut 404. Il semble que des erreurs HTTP 404 sont traitées par DispatcherServlet par défaut. Est-il possible de changer ce comportement?

Et comment puis-je rattraper les erreurs 404 dans mon gestionnaire d'exception?

Liées à la stackoverflow.com/questions/1196569/...
Merci pour la référence croisée. Il fonctionne comme il est décrit dans l'autre post. Au lieu d'utiliser le @ExceptionHandler annotation, vous devez utiliser le @RequestMapping annotation, qui fait sens.Cheers

OriginalL'auteur Max | 2011-04-05