我有一个有两种方法的控制器。一个用于删除用户,另一个用于从角色中删除用户。
@Controller
@RequestMapping(value="/rest/users/**")
public class UsersCtrlr {
@RequestMapping(value="/{username:.+}", method=RequestMethod.DELETE)
public @ResponseBody HttpStatusDoc deleteUser(HttpServletRequest req, @PathVariable String username) {
...
}
@RequestMapping(value="/{username:.+}/roles/{role:.+}", method=RequestMethod.DELETE)
public @ResponseBody HttpStatusDoc deleteUserRole(HttpServletRequest req, @PathVariable String username, @PathVariable String role) {
...
}
}
我的前端使用如下网址进行 jquery ajax 调用:
/rest/users/jdoe@foo.com/roles/some_role
此 uri 被映射到 deleteUser 方法,其username
等于some_role
我正在尝试让 uri 映射到 deleteUserRole 并将username
设置为jdoe@foo.com
和role
设置为some_role
.
为什么 uri 不会映射到 deleteUserRole?它与RequestMappings中的正则表达式有关吗?