2009-05-20 9 views
7

Rozważmy to Wiosna MVC Kontroler:Zawężanie problem z wiosny MVC kontrolera opartego na adnotacji i @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){ 
    ... 
    } 

} 

Kiedy kładę to w mojej przeglądarce:

mySite.com/test.html?myParam=1 

Spodziewałem się AmbiguousHandlerMappingException czy coś, ponieważ obie metody wydają się pasować do adresu URL.

Ale faktycznie pierwsza metoda została wywołana. Czy ktoś wie dlaczego?

+0

Z której wersji Spring korzystasz? – skaffman

+0

Używam 2.5.6 –

Odpowiedz

5

To pachnie jak pluskwa. Jeśli dodasz metodę = GET do drugiej procedury obsługi, działa ona zgodnie z oczekiwaniami, więc jest to obejście tego problemu.

Złożyłem zgłoszenie błędu w tej sprawie, mam nadzieję, że zostanie ono zaadresowane.

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

+1

Ten problem zostanie rozwiązany w wydaniu RC1. – skaffman

+2

SPR-5772 jest teraz rozwiązany i znajdzie się w RC1. – skaffman