使用@RequestMapping 和不使用方法的区别

Arg*_*gos 2 spring spring-mvc

我正在学习 Spring 和 MVC。

所以,在控制器类中,我有这个方法:

@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);
}
Run Code Online (Sandbox Code Playgroud)

它有效。但是如果我改变它删除“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);
}
Run Code Online (Sandbox Code Playgroud)

它也有效。所以,我的问题是有什么区别?

Bol*_*yar 7

@RequestMapping 注释处理所有类型的传入 HTTP 请求,包括 GET、POST、PUT 等。默认情况下,假定所有传入的 URL 请求都是 HTTP GET 类型。为了通过 HTTP 请求类型区分映射,您需要明确指定 HTTP 请求方法。想要查询更多的信息