У меня есть вопрос по поводу шаблона URI @RequestMapping.Я построил контроллер для обработки обновления пользовательских данных.И я пишу два метода ниже.
@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 запроса выглядит как / имя_проекта / 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 не может обработать три аннотации @PathVariable в ОДНОМ методе.
Есть кто-нибудь, кто может сказать мне, почему или где я сделал неправильно, пожалуйста?
Заранее спасибо!