2009-05-20 11 views
7

Betrachten Sie diesen Spring MVC Controller:Eingrenzen Problem mit Spring MVC-Annotation-basierte Steuerung und @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){ 
    ... 
    } 

} 

Als ich dies in meinen Browser setzen:

mySite.com/test.html?myParam=1 

ich eine AmbiguousHandlerMappingException oder etwas zu erwarten, da beide Methoden mit der URL übereinstimmen.

Aber tatsächlich wurde die erste Methode aufgerufen. Weiß jemand warum?

+0

Welche Version von Spring verwenden Sie? – skaffman

+0

Ich benutze 2.5.6 –

Antwort

5

Das riecht wie ein Käfer. Wenn Sie dem zweiten Handler method = GET hinzufügen, funktioniert es wie erwartet, das ist die Problemumgehung.

Ich habe einen Fehlerbericht hierüber eingereicht, hoffentlich wird es angesprochen.

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

+1

Dieses Problem wird in der RC1-Version behoben werden. – skaffman

+2

SPR-5772 ist jetzt gelöst und wird in RC1 sein. – skaffman

Verwandte Themen