기본
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 |