study/Spring
2_Spring(Controller)(@RequestParam, @ModelAttribute)
스파이크12
2020. 2. 21. 08:37
@Controller
프레젠테이션 레이어, 웹 애플리케이션에서 View에서 전달받은 웹
요청과 응답을 처리하는 클래스임을 나타냄 + bean
@RequestMapping("")
내부 메소드 레벨에서 매핑되는 공통되는 부분 작성
방법 5가지
1. HttpServletRequest를 이용하여 파라미터 받기(기존 Servlet방식)
2. @RequestParam 어노테이션
request 객체를 이용하여 파라미터를 전달받은 어노테이션
@RequestParam("name속성값") String 원하는 변수명
요청페이지의 input 값(value)이 비어있다면 ""(빈문자열)로 전달됨
3. @RequestParam 어노테이션 생략
@RequestParam 어노테이션 생략시 매개변수명을 전달되는 파라미터의
name속성 값과 똑같이 작성하면 해당 매개변수에 파라미터가 매핑되어 자동 주입됨
* 어노테이션 생략은 코드를 읽는 가독성을 낮추므로 어노테이션을 작성하는 것을 권장함
@ ModelAttribute와 @RequestParam 혼용시 둘중 하나만 생략하고 나머지 하나는 명시하는 형태로
많이 사용됨
4. @ModelAttriubute를 이용한 파라미터 전달받기
요청 페이지에서 전달하는 파라미터가 많고 전달되는 파라미터들의 특정 VO 클래스의
필드에 저장된 형태일떄 사용
(주의사항)
1) 전달되는 파라미터의 name 속성값과 VO클래스의 필드명이 같아야 한다.
2) VO클래스에는 기본생성자 + setter가 반드시 존재해야함
--> 커맨드 객체