Я узнаю о Spring и MVC.Разница между использованием @RequestMapping с использованием метода и без него
Таким образом, в классе контроллера, у меня есть этот метод:
@RequestMapping(value="/buscaUsuario/{apodo}", method= RequestMethod.GET)
public String searchUser(@PathVariable("apodo") String apodo){
String res;
int usrId = this.usuarioService.bucarUsuario(apodo);
if(usrId == 0) res = "/error";
else res =("/user/"+Integer.toString(usrId));
return ("redirect:"+res);
}
И это работает. Но если я изменил его, удалив часть «method = RequestMethod.GET». Я имею в виду, используя его следующим образом:
@RequestMapping(value="/buscaUsuario/{apodo}")
public String searchUser(@PathVariable("apodo") String apodo){
String res;
int usrId = this.usuarioService.bucarUsuario(apodo);
if(usrId == 0) res = "/error";
else res =("/user/"+Integer.toString(usrId));
return ("redirect:"+res);
}
Это ТАКЖЕ работает. Итак, мой вопрос: в чем разница?
Прочитайте http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc-ann-requestmapping. Он говорит = * В приведенном выше примере не указаны GET vs. PUT, POST и т. Д., Потому что '@ RequestMapping 'сопоставляет все HTTP-методы по умолчанию. Используйте '@RequestMapping (method = GET)' или '@ GetMapping', чтобы сузить отображение. * –