12
@RequestMapping(value = {"/userDetails", "/userDetails/edit/{id}"}, method = RequestMethod.GET)
public String userDetails(Map Model,****) {
//what goes here? 
}

我对该userDetails方法的论点是什么?我如何区分/userDetails/userDetails/edit/9在方法内?

4

1 回答 1

17

理想情况下,我们可以通过@PathVariable在方法参数中使用注释来获取路径变量,但是在这里您使用了 url 数组,{"/userDetails", "/userDetails/edit/{id}"}因此这将在提供请求时出错localhost:8080/domain_name/userDetails,在这种情况下,不会向 @PathVariable 提供 id。

因此,您可以通过在方法中使用参数 HttpServletRequest request 并使用以下请求对象来获得差异(通过哪个请求) -

字符串 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
 }
于 2012-04-09T11:40:58.453 回答