2017-01-08 12 views
1

私はSpringとMVCについて学んでいます。使用の違い@RequestMapping with with with method

ので、コントローラクラスで、私はこの方法があります:

@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); 
} 

これは機能します。だから、私の質問は違いは何ですか?

+4

http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc-ann-requestmappingを参照してください。 = @ *上記の例では、GETとPUT、POSTなどは指定されていません。@ RequestMappingはデフォルトですべてのHTTPメソッドをマップするためです。 '@RequestMapping(method = GET)'や '@ GetMapping'を使ってマッピングを絞ります。 –

答えて

1

@RequestMappingアノテーションは、GET、POST、PUTなどのすべてのタイプの着信HTTPリクエストを処理します。デフォルトでは、URLへの着信リクエストはすべてHTTP GETのものとみなされます。 HTTP要求タイプによるマッピングを区別するには、HTTP要求メソッドを明示的に指定する必要があります。 for more information