본문 바로가기
WEB/Spring

@Controller

by 노랑파랑 2017. 1. 30.
반응형



기본

Spring 프레임워크 2.5에서 추가된 어노테이션.

기존의 XML파일에서 명시해줬던 정보들(요청과 Controller 매핑설정 등)을 Controller 코드(클래스)안에서 어노테이션을 선언하여 Controller라고 명시해주고 @Controller 어노테이션과 하위 어노테이션을 계층형으로 구성하여 그 외 정보들을 명시한다.

Controller : 클라이언트의 요청을 처리한 뒤, 그 결과를 DispatcherServlet에게 알려준다.



설명


@Controller

해당 클래스가 Controller임을 명시한다. Spring MVC에서 해당 어노테이션으로 컨트롤러를 생성한다. 

@Controller
public class SampleController{
}



@RequestMapping

Controller가 처리할 요청(Request)Url을 매핑한다. 

어떤 Controller, 어떤 메소드가 처리할 지 명시한다.


1) Controller에 명시 (http://주소/test)로 매핑

@Controller
@RequestMapping("/test")
public class SampleController{
}


2) Method에 명시

@Controller
public class SampleController{
@RequestMapping("/test")
public String test(){
}

2-1) GET 방식 

@RequestMapping

@GetMapping    :    Spring 4.3버전에 추가된 어노테이션

@RequestMapping(value="/test" method = RequestMethod.GET)
public String test(){
}

@GetMapping("test")
public String getTest(){
}

2-2) POST 방식

@RequestMapping

@PostMapping    :    Spring 4.3버전에 추가된 어노테이션

@RequestMapping(value="/test" method = RequestMethod.POST)
public String test(){
}

@PostMapping("/test")
public String postTest(){
}


3) Controller + Method 명시 (http://주소/test/view)로 매핑

@Controller @RequestMapping("/test") public class SampleController{     @RequestMapping("/view")     public String test(){     } }



@RequestParam

Controller 메소드의 파라미터를 웹 요청 파라미터와 매핑하기 위해 사용한다.

이름 

타입 

설명 

 value

String 

파라미터 이름 

 required 

Boolean

해당 파라미터의 필수 여부, 기본값 : true


@RequestMapping("/test")
public String test(@RequestParam("id") String id)){
}

@RequestMapping("/required_test")
public String noRequired(@RequestParam(value="email", required=false)String email){
}




@ModelAttribute

메소드의 파라미터나 리턴값을 Model 객체와 바인딩

@GetMapping("/"
public String userView(Model model, User user){
    
    model.setAttribute("user", user);    //Model 객체에 저장
    return "test/userView";

}

public String model(@ModelAttribute("user") User user){
}



@SessionAttribute

Model 객체를 세션에 저장

반응형

'WEB > Spring' 카테고리의 다른 글

JPA (Java Persistence API )  (0) 2017.04.21
HandlerMethodArgumentResolver  (0) 2017.02.01
Spring Boot : Bootstrap 연결  (0) 2017.01.20
Spring Boot에서 Jsp 사용  (0) 2017.01.20
Spring Boot  (0) 2017.01.20