为具有不同参数的相同网址模式创建两个方法


问题内容

我有一个方案,其中一个网址“ serachUser”可能带有两个不同的值(请求参数)userId或UserName。

为此,我创建了两种方法

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

但是我越来越模糊的映射发现异常。Spring有任何方法可以处理这种情况。


问题答案:

您可以使用该params参数按HTTP参数进行过滤。在您的情况下,它将类似于:

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

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