Controller에서 쓰는 @Annotation 정리 -1
@RequestMapping
- url을 컨트롤러에 매핑해주는 역할
- 기본적인 결합 방법은 클래스 레벨의
@RequestMapping
을 기준으로 삼고, 메서드 레벨의
@RequestMapping
으로 세분화하는 방식으로 사용된다.
🧡클래스 레벨
@Controller
@RequestMapping("/mypage")
public class MypageController { }
💚메서드 레벨
@RequestMapping("/mypage/myInfo")
public ModelAndView mypage() throws Exception {
ModelAndView model = new ModelAndView();
return model;
}
@RequestMapping
에 사용할 수 있는 속성
String[] value
- URL 패턴을 지정하는 속성
@RequestMapping(value="/post")
@RequestMapping(value="/post.*")
@RequestMapping(value="/post/**/comment")
@RequestMapping(value={"/post", "/P"})
RequestMethod[] method
- RequestMethod는 HTTP 메서드를 정의한 ENUM이다.
- GET, POST, PUT, DELETE, OPTIONS, TRACE로 총 7개의 HTTP 메서드가 정의되어 있다.
@RequestMapping
에 method를 명시하면 똑같은 URL이라도 다른 메서드로 매핑해줄 수 있다
✅spring 4.3 부터 spring MVC 컨트롤러 메소드를 위한 새로운 어노테이션이 5개 추가
- @PostMapping
- @GetMapping
- @PutMapping
- @DeleteMapping
- @PatchMapping
각 어노테이션들은 HttpMethods에 매칭
@RequestMapping(value="/getList", method ={RequestMethod.POST})
➡️
@RequestMapping(value="/getList", method ={RequestMethod.POST})
String[] params
- 요청 파라미터와 값으로도 구분할 수 있다.
- String 배열로 여러개 지정할 수 있음.
// /post?useYn=Y 일 경우 호출됨
@RequestMapping(value="/post", params="useYn=Y")
// not equal도 가능
@RequestMapping(value="/post", params="useYn!=Y")
// 값에 상관없이 파라미터에 useYn이 있을 경우 호출됨
@RequestMapping(value="/post", parmas="useYn")
// 파라미터에 useYn이 없어야 호출됨
@RequestMapping(value="/post", params="!useYn")