2009-05-20 3 views
7

Tenir compte ce contrôleur Spring MVC:problème Rétrécissement avec le contrôleur à base d'annotations Spring MVC et @RequestMapping

@Controller 
@RequestMapping("/test*") 
public class TestController { 

    @RequestMapping(method = RequestMethod.GET) 
    public void doStuff(Model model){ 
    ... 
    } 

    @RequestMapping(params = "myParam") 
    public void doStuff(@RequestParam("myParam") int myParam, Model model){ 
    ... 
    } 

} 

Quand je mets ceci dans mon navigateur:

mySite.com/test.html?myParam=1 

Je me attendais à un AmbiguousHandlerMappingException ou quelque chose, puisque les deux méthodes semblent correspondre à l'URL.

Mais en réalité la première méthode a été appelée. Est-ce que quelqu'un sait pourquoi?

+0

Quelle version de printemps utilisez-vous? – skaffman

+0

J'utilise 2.5.6 –

Répondre

5

Cela sent comme un bogue. Si vous ajoutez method = GET au second gestionnaire, cela fonctionne comme prévu, c'est donc la solution de contournement.

J'ai envoyé un rapport de bogue à ce sujet, j'espère qu'il sera traité.

http://jira.springframework.org/browse/SPR-5772

+1

Ce problème sera corrigé dans la version RC1. – skaffman

+2

SPR-5772 est maintenant résolu et sera en RC1. – skaffman

Questions connexes