Utilisation de mappages de contrôleur basés sur des annotations.Spring MVC très confus à propos des mappages de contrôleur
@Controller
public class AlertsController {
@RequestMapping(value="create", method=RequestMethod.GET)
public void create(HttpServletRequest request, Model model) {
}
}
Lorsque l'accès alerts/create
, je reçois le message Does your handler implement a supported interface like Controller?
. Cela semble étrange et contraire à ce que dit la documentation.
Alors, j'ajoute dans un RequestMapping
à la classe:
@Controller
@RequestMapping("/alerts")
public class AlertsController {
@RequestMapping(value="create", method=RequestMethod.GET)
public void create(HttpServletRequest request, Model model) {
}
}
Voilà donc fonctionne. Je ne devrais pas besoin non plus @RequestMapping
, mais je le fais. Maintenant, les choses deviennent bizarres. Je voulais vraiment cette commande à une `/ profil/alertes, donc je le changer à ceci:
@Controller
@RequestMapping("/profile/alerts")
public class AlertsController {
@RequestMapping(value="create", method=RequestMethod.GET)
public void create(HttpServletRequest request, Model model) {
}
}
je reçois un 404 pour aller à profile/alerts/create
, mais il est toujours mis en correspondance /alerts/create
pour une raison ?! ?!?!
je changer à:
@Controller
@RequestMapping("foobar")
public class AlertsController {
@RequestMapping(value="create", method=RequestMethod.GET)
public void create(HttpServletRequest request, Model model) {
}
}
Ceci est très étrange et incroyablement pratique. Quelqu'un a un moyen de résoudre ce problème, ou même de déboguer ce qui se passe?
J'ai eu le résolveur de vue, et cela a fonctionné. Ce qui est bizarre, c'est que je pensais que les annotations '@ RequestMapping' sur les méthodes étaient des améliorations de l'annotation au niveau de la classe; ça ne semble pas. – davetron5000