SPRING #12 폼데이터
#프로젝트 열떄마다 pom.xml에 lombok 쓰고, web.xml에 한글처리 해주기
[dto보다 jsp 먼저 만드는 이유 : dto가 어떻게 생성되는지에 대한 이해를 하려고 jsp를 먼저만들어준거]
#views 단에 member/input.jsp 생성하기
#spring/appServlet/servlet-context 에 resource 추가에 css 추가해주고, webapp에 css 폴더 및 파일 만들어 주기
#Java Resources / com.lec.ch08패키지에 dto 생성해주기
ㅇ 어노테이션 받아주기 (빈을 만들것이기 때문에 매개변수 없는 생성자함수와 setter은 꼭 포함되어야함
ㅇ jsp의 input 파라미터의 이름과 동일하게 매개변수명 설정해서 선언해줘야함
# 여기서 실행시키면 당연히 에러뜸 컨트롤러가 없으니까. 따라서 슬래쉬가 요청되었을때 어떤 함수를 수행하라 라는 의미의 로직을 짜주어야 함
# MyController 생성해주기
1. servelet-context.xml 에 가서 <context:component-scan base-package="com.lec.ch08" /> 한번 확인해주고
2. MyController 위에 @Controller 어노테이션 써주기
3. @RequestMapping 해주고, input 메소드 쓴 후 jsp view 단 return 해주기
4. 여기서 cnt와 list 뿌려주고 싶다고, 매개변수에 model 쓰고 addAttribute("cnt",5); 이런식으로 쓰면 안됨. 이걸 쓰면 모든 함수에다가 넣어줘야하기 때문에 맨 위에다가 정의를 해줘야함
5. @ModelAttribute ("cnt") 해주고 함수를 쓰면, 어떤 곳에서든지 이함수를 먼저 받고 밑에 있는 단의 함수에 다 쏙쏙 들어가게됨
#MemberController 생성해주기
1. @Controller 설정해주기
2. 클래스밖에 @RequestMapping("member") 공통요청경로 빼주기
3. 클래스 안에 join1로 향하는 아이 만들어주기
4. MyController에 만들어놓은 @ModelAttribute 쓴 아이들 모든 컨트롤러 위에 써주기
5. 함수의 매개변수에 Model 을 쓰면 우리가 input 에 쓴 파라미터가 들어오지 않기 때문에 매개변수에 request 형 타입의 변수를 넣어줘야함 또한 Model 변수도 넣어주기
** 즉 input 에서 넘어온 파라미터는 request안에 들어가 있는 상태
6. request로 getParameter 해서 들어온 변수들 다 받아주기
7. 받아온 아이들을 다시 model에 addAttribute 해주기
8. 결과 return 해주기 (view 단)
#result1.jsp 만들어주기
# join2
@RequestMapping(value="join2") 아래 함수에서 매개변수 안에 @RequestParam을 쓸 수도 있음
매개변수에 어노테이션으로 값과 변수를 세팅해주고, model에 그 변수들을 add 해주기
#join3
함수의 매개변수에 전달받은 파라미터명과 동일한 이름으로 변수명 설정해서 넣어주기
이렇게 하면 파라미터로 들어온 값들이 매개변수에 자동으로 달라붙음 (request 안해도 됨)
#join4
매개변수에 Dto 와 model 을 받은 후에 model에 dto값들 넣어준 뒤 add 해주기, result 단에서 member.id 이런식으로 불러
오면 값이 넘어감
#join5(많이씀)
매개변수에 dto만 넣고 result값 return 해주기 jsp단에서 memberDto.id 이런식으로 불러오기
#join5(많이씀)
@ModelAttribute ("member") 를 memberDto에 넣어서 보내기
단어 정리
@Controller : 이 클래스가 컨트롤러의 역할을 할 것이다 라고 선언하는 어노테이션
@RequestMapping(value="/") : 괄호안에 있는 아이가 요청 들어오면 밑의 메소드를 실행하여라
@ModelAttribute : jsp의 헤더와 풋터처럼 어느 함수 혹은 어느 view 단에서도 동일하게 뿌려지는 로직을 생성하고 싶을 경우 , @RequestMapping 안에 model로 addAttribute 해서 값을 정의해버리면 내가 함수를 쓸때마다 이 로직을 하나하나 다추가해야함 . 그런 귀찮음을 방지해주기 위해 한번에 생성해서 뿌려주기 위한 어노테이션
@RequestParam ("a") String aa-- 함수의 매개변수 안에 쓰였을경우 : 파라미터로 들어온 a값을 , aa라는 변수에 넣어라 라는 뜻
@PathVariable ("a") String id : path를설정하는 곳에서 일부만 뽑아오고 싶을때, PathVariable{id} 하면 path 에서 id만 뽑아서 id 변수에 넣어줘라 라는 뜻
1. jsp에
2. MyController로 가서
3.