crear dos métodos para el mismo patrón de url con diferentes argumentos

Tengo un escenario en el que una url “serachUser” puede venir con dos valores diferentes (parámetro de solicitud) userId o UserName.

entonces para esto he creado dos métodos

public String searchUserById(@RequestParam long userID, Model model) public ModelAndView searchUserByName(@RequestParam String userName) 

Pero estoy obteniendo una asignación ambigua. Spring tiene alguna manera de manejar esta situación.

Puede usar el parámetro params para filtrar por parámetros HTTP. En tu caso, sería algo así como:

 @RequestMapping(value = "/searchUser", params = "userID") public String searchUserById(@RequestParam long userID, Model model) { // ... } @RequestMapping(value = "/searchUser", params = "userName") public ModelAndView searchUserByName(@RequestParam String userName) { // ... }