관리 메뉴

nalaolla

@RequestMapping 본문

SPRING

@RequestMapping

날아올라↗↗ 2016. 5. 31. 09:43
728x90
반응형

@RequestMapping


관련 문서


RequestMapping annotation은 url을 Controller의 method와 mapping 시켜주는 역할을 한다.

class에 하나의 url mapping을 할 경우, class위에 @RequestMapping("/url")을 지정하며, GET 또는 POST 방식 등의 옵션을 줄 수 있다.

해당되는 method가 실행된 후, return 페이지가 따로 정의되어 있지 않으면 RequestMapping("/url")에서 설정된 url로 다시 돌아간다.


options


value

"value='/getMovie.do'"와 같은 형식의 매핑 URL 값이다. 디폴트 속성이기 때문에 value만 정의하는 경우에는 'value='은 생략할 수 있다.

@RequestMapping(value={"/addMovie.do""/updateMovie.do" }) 
public String myMethod() {
    // "/addMovie.do", "/updateMovie.do" 두 URL 모두 처리한다.
}
cs


method

GET, POST, HEAD 등으로 표현되는 HTTP Request method에 따라 requestMapping을 할 수 있다.  method=RequestMethod.GET' 형식으로 사용한다. method 값을 정의하지 않는 경우 모든 HTTP Request method에 대해서 처리한다. value 값은 클래스 선언에 정의한 @RequestMapping의 value 값을 상속받는다. 

@RequestMapping(method = RequestMethod.POST)
public String myMethod() {
    // ...
}
cs


params

HTTP Request로 들어오는 파라미터 표현이다. 'params={"param1=a", "param2", "!myParam"}' 로 다양하게 표현 가능하다. 

HTTP Request에 param1과 param2 파라미터가 존재해야하고 param1의 값은 'a'이어야하며, myParam이라는 파라미터는 존재하지 않아야한다. 또한, value 값은 클래스 선언에 정의한 @RequestMapping의 value 값을 상속받는다.

@RequestMapping(params = {"param1=a""param2""!myParam"})
public String myMethod() {
    // ...
}
cs


headers

HTTP Request의 헤더 값이다.'headers="someHader=someValue"', 'headers="someHader"', 'headers="!someHader"' 로 다양하게 표현 가능하다. Accept나 Content-Type 같은 헤더에 대해서 media type 표현 시 '*' 도 지원한다. 

HTTP Request에 Content-Type 헤더 값이 "text/html", "text/plain" 모두 매칭이 된다. Type-Level, Method-Level에서 모두 사용할 수 있는데, Type-Level에 정의된 경우, 하위의 모든 핸들러 메서드에서도 Type-Level에서 정의한 헤더값 제한이 적용된다.

@RequestMapping(value="/movie.do", headers="content-type=text/*"
public String myMethod() {
    // ...
}
cs


produces: TODO

@RequestMapping(value="...", produces = "application/json")
@RequestBody
public HashMap<StringString> testMethod(Model model) {
    HashMap<StringString> map = new HashMap<StringString>();
    map.put("code""0");
    return map;
}
cs


example


@Controller
@RequestMapping("/test/*")
public class SampleController1 {
    @RequestMapping(method=RequestMethod.GET, value="go")
    public returntype getMethodName() {
        // ...
    }
 
    @RequestMapping(method=RequestMethod.POST, value="go2")
    public returntype getMethodName2() {
        // ...
    }
}
 
@Controller
@RequestMapping(value="/main.action")
public class SampleController2 {
    @RequestMapping(method=RequestMethod.GET)
    public String method() {
        return ".mainLayout";
    }
}
 
@Controller
public class SampleController3 {
    @RequestMapping(value="/main.action")
    public returntype m01() {
        // ...
    }
}
cs


728x90
반응형

'SPRING' 카테고리의 다른 글

@ModelAttribute  (0) 2016.05.31
@Controller  (0) 2016.05.31
Spring Framework: annotation 정리  (0) 2016.05.31
spring batch framework reference자료  (0) 2016.05.26
다국어 처리 - localeResolver, messageSource  (0) 2016.05.11