Reputation: 3038
I have scenario where one url "serachUser" may come with two different value (request parameter) userId or UserName.
so for this I have created two methods
public String searchUserById(@RequestParam long userID, Model model)
public ModelAndView searchUserByName(@RequestParam String userName)
But i am getting Ambiguous mapping found exception. Can Spring handle this situation?
Upvotes: 131
Views: 95096
Reputation: 1
Any way in case of request param null is allowed if you don't pass any value it will be null then you can write your code like:
@RequestMapping(value = "/searchUser", params = {"userID","userName"})
public String searchUserById(@RequestParam long userID,@RequestParam String
userName, Model model) {
if(userID != null){
//..
}else{
// ...
}
Upvotes: -1
Reputation: 13181
You can use the params
parameter to filter by HTTP parameters. In your case it would be something like:
@RequestMapping(value = "/searchUser", params = "userID")
public String searchUserById(@RequestParam long userID, Model model) {
// ...
}
@RequestMapping(value = "/searchUser", params = "userName")
public ModelAndView searchUserByName(@RequestParam String userName) {
// ...
}
Upvotes: 258