2017-01-08 6 views
1

Spring과 MVC에 대해 배우고 있습니다. 차이점 사용법 @RequestMapping 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