111

我有一个 url “serachUser” 可能带有两个不同值(请求参数)userId 或 UserName 的场景。

所以为此我创建了两种方法

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

但是我得到了不明确的映射发现异常。Spring可以处理这种情况吗?

4

2 回答 2

227

您可以使用该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) {
  // ...
}
于 2013-04-06T16:25:40.523 回答
0

如果您不传递任何值,则允许任何方式的请求参数为空,它将为空,那么您可以编写如下代码:

@RequestMapping(value = "/searchUser", params = {"userID","userName"})
public String searchUserById(@RequestParam long userID,@RequestParam String 
userName, 
Model model) {    
if(userID != null){
//..
}else{
// ...
}
于 2020-08-25T20:09:42.170 回答