1. ホーム
  2. spring

[解決済み] 同じurlパターンに対して異なる引数で2つのメソッドを作成する

2022-10-05 14:03:40

質問

私は、1つのURL "serachUser" が2つの異なる値(リクエストパラメータ)userIdまたはUserNameで来る可能性があるシナリオを持っています。

このため、2つのメソッドを作成しました。

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

しかし、私はAmbiguous mapping found例外を取得します。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) {
  // ...
}