2015-05-21 29 views
10

Farklı URL parametreleriyle farklı davranması gereken bir denetleyicim var. Böyle bir şey:Aşırı Yük Denetleyici Yöntemi

@RequestMapping(method = RequestMethod.GET) 
public A getA(@RequestParam int id, @RequestParam String query) { 
    ... 
} 


@RequestMapping(method = RequestMethod.GET) 
public A getA(@RequestParam int id) { 
    ... 
} 

Ama bu işe görünmüyor, aşağıdaki özel durum alıyorum:

org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping found. Cannot map '[controller name]' bean method 

uygulama yöntemi URL params bağlı seçtiği bir yolu var mı?

+0

_doesn't work_ görünüyor açıklar mevcut olmalıdır eşlemenizde belirtiniz. Ne yapmasını bekliyorsun? Neden bu beklentileriniz var? Aslında nasıl davranıyor? –

+0

Sorular için teşekkür ederim, gönderimi uzattım. – wildthing

+0

Sadece bir yöntem kullanın ve '@ RequestParam'' '' '' 'false '' i ayarlayın. –

cevap

27

parametreler

@RequestMapping(method = RequestMethod.GET, params = {"id", "query"}) 
public A getA(@RequestParam int id, @RequestParam String query) { 
    ... 
} 


@RequestMapping(method = RequestMethod.GET, params = {"id"}) 
public A getA(@RequestParam int id) { 
    ... 
} 
İlgili konular