@RequestMapping URI テンプレートについて質問があります。ユーザーの詳細の更新を処理するコントローラーを作成しました。そして、以下に2つの方法を書きます。
@RequestMapping(value="/updateUser/{applicationModuleType}/{userCountryCode}/{applicationModuleId}")
public @ResponseBody Object handleUpdateUserDetailsRequest(@PathVariable String applicationModuleType,
@PathVariable String userCountryCode,
@PathVariable String applicationModuleId,
Model model) {
System.out.println("************ form:Submited");
}
return null;
}
@RequestMapping(value="/updateUser/**")
public @ResponseBody Object handleRequest(Model model) {
System.out.println("************ form:Submited all");
return null;
}
リクエスト URI は /project_name/updateUser/app/au/132 のようなものです
このアプリを tomcat で実行すると、最初のメソッドは呼び出されません。コントローラは常に 2 番目のものを使用します。しかし、Spring フレームワークのドキュメントでは、「メソッドは任意の数の @PathVariable アノテーションを持つことができます」と述べています。
したがって、メソッドに 3 つの @PathVariable アノテーションを付けられない理由がわかりません。
もう1つは、最初のメソッド @RequestMapping アノテーションを次のように変更すると、呼び出すことができます。
@RequestMapping(value="/updateUser/app/{userCountryCode}/{applicationModuleId}")
public @ResponseBody Object handleUpdateUserDetailsRequest(@PathVariable String userCountryCode,
@PathVariable String applicationModuleId,
Model model) {
System.out.println("************ form:Submited");
}
return null;
}
Spring は 1 つのメソッドで 3 つの @PathVariable アノテーションを処理できないようです。
なぜ、どこで間違ったのか教えてくれる人はいますか?
前もって感謝します!