[Spring] 데이터 받아 오기

aljongjong·2022년 1월 14일
0

학원 복습일지

목록 보기
70/84

오늘 사용자의 요청과 함께 보내진 데이터를 컨트롤러에 받는걸 배웠다. 아 그리고 이전 Spring 복습글들에 내가 Dispatcher Servlet에 대해 잘못알고 있었던게 있다. Dispatcher Servlet이 우리가 만드는 controller servlet인줄 알았는데 web.xml에서 확인할 수 있듯이 이미 spring에 만들어져있는, 사용자의 요청이 Spring container에 들어올때 처음으로 거치는 또 다른 서블릿이였다.
데이터 받아 오는 방법을 정리해본다.

1) 첫번째 방법은 기존 방식과 같이 req.getParameter를 사용하는 방법이다. 매핑해주는 메소드의 매개변수에 HttpServletRequest req를 파라미터로 설정하고, 메소드 안에서 req.getParameter('name값')으로 기존 servlet, jsp 방식을 사용하여 값을 가지고 올 수 있다.



2) 두번째 방법은 메소드 매개변수의 파라미터를 회원이 보내는 데이터의 name값과 동일하게 설정해준다. 앞에 @RequestParam을 붙여 request parameter임을 명시해줘도되고 안 해줘도 데이터를 받아올 수 있다. @RequestParam을 사용하면 추가 속성들을 설정할 수 있다.

- required : 화면에서 넘어오는 name 중 해당 값 존재 여부
- defaultValue : 기본 값 설정
- name : 화면에서 넘어오는 파라미터 이름 설정
- value : name과 같은 기능



3) 세번째 방법은 메소드 매개변수 파라미터에 데이터를 담을 객체 모델을 넣고 @ModelAttribute를 앞에 붙여주는 방법이다. 두번째 방법처럼 어노테이션을 붙여주지 않아도 데이터를 받아올 수 있다.

- 사용자가 보내는 값의 name과 같은 이름의 setter 메소드가 model vo에 있어야 spring이 인식하고 가져와서 set 해준다. ex) name= “id”, -> setId
- setXXX이용하여 데이터를 맵핑해준다.
- camelCase 맞춰서 작업을 하기때문에, 네이밍 신경써야한다.




4) 세번째 방법을 통해 프로그래머가 model만 만들어주면 spring이 parameter를 가져오고 프로그래머가 만들 model에 값을 set까지 해주게된다. mvc 패턴에서 실행되는 get, model, set 작업에서 개발자가 model을 만들고 spring이 set과 get을 처리할 수 있도록 적절한 곳에 배치하고 끼워 넣어주면 spring이 get, set작업을 해준다. 그런 일련의 작업을 IoC : Inversion of Control 제어의 역전이라고 한다.

5) 다중 데이터를 받는 방법도 배웠다. 첫번째 방법은 기존 방법과 동일하게 req.getParameterValues("name값")을 사용하는 방법이다. 메소드 매개변수의 파라미터에 HttpServletRequest를 넣어주고 req.getParameterValues("name값")을 사용해서 다중 데이터를 가져와 String 배열에 대입하고 반복문으로 확인해본다.



6) 두번째 방법은 메소드 매개변수 파라미터로 Strig 배열을 설정한다.



7) 세번째 방법은 메소드 매개변수 파라미터로 List<String'> 설정하고 @RequestParam을 붙여준다.



8) 마지막으로 String[]이나 List<String'>을 멤버 변수로 갖고 있는 model vo를 메소드 매개변수 파라미터로 설정하는 방법이 있다.




0개의 댓글