@RequestMapping(value = {"/userDetails", "/userDetails/edit/{id}"}, method = RequestMethod.GET)
public String userDetails(Map Model,****) {
//what goes here?
}
userDetails
メソッドに対する私の引数は何ですか?また、メソッド内で/userDetails
と/userDetails/edit/9
を区別するにはどうすればよいですか?
理想的には、メソッド引数でアノテーション@PathVariable
を使用してパス変数を取得できますが、ここではurl {"/userDetails", "/userDetails/edit/{id}"}
の配列を使用しているため、localhost:8080/domain_name/userDetails
のような供給要求中にエラーが発生します。この場合、IDはありません。 @PathVariableに提供されます。
したがって、メソッドで引数HttpServletRequestリクエストを使用し、このリクエストオブジェクトを次のように使用することで、違い(どのリクエストが通過するか)を取得できます-
文字列uri = request.getRequestURI();
コードはこんな感じ-
@RequestMapping(value = {"/userDetails", "/userDetails/edit/{id}"}, method=RequestMethod.GET)
public String userDetails(Map Model,HttpServletRequest request) {
String uri = request.getRequestURI();
//put the condition based on uri
}