LANGUAGE/SPRING

SPRING #12 폼데이터

옐옐루 2022. 7. 15. 13:38

 

 

#프로젝트 열떄마다 pom.xml에 lombok 쓰고, web.xml에 한글처리 해주기 

[dto보다 jsp 먼저 만드는 이유 : dto가 어떻게 생성되는지에 대한 이해를 하려고 jsp를 먼저만들어준거]

#views 단에 member/input.jsp 생성하기 

#spring/appServlet/servlet-context 에 resource 추가에 css 추가해주고, webapp에 css 폴더 및 파일 만들어 주기 

input.jsp

 

 

#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.

 

 

 

반응형