我对@RequestMapping URI 模板有疑问。我构建了一个控制器来处理用户详细信息更新。我在下面写了两种方法。
@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 中运行这个应用程序时,第一个方法永远不会被调用。控制器始终使用第二个。但是在spring framework doc中,它说“一个方法可以有任意数量的@PathVariable注释”。
所以,我无法弄清楚为什么我不能在一个方法中使用三个 @PathVariable 注释。
另一件事是,如果我像下面这样更改第一个方法 @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 无法在 ONE 方法中处理三个 @PathVariable 注释。
有没有人可以告诉我为什么或哪里做错了,拜托?
提前致谢!