SpringMVC

[SpringMVC] 파라미터 처리방식 (2)

wookjae 2021. 9. 1. 00:05

Map(맵), List(리스트) ?

* Client로 부터 Server로 전달된 파라미터 데이터를 Map, List 로 주입 받을 수 있다.

* Map으로 주입 받을시 같은 이름으로 전달되는 2개이상의 파라미터는 하나의 값만 저장된다.

* 위 경우, List로 주입받으면 해결된다.

-->  Util Package ( java.util.Map, java.util.List )

 

@ModelAttribute ?

* Client로 부터 Server로 전달된 파라미터 데이터를 클래스객체(Bean)으로 주입 받는다.

* 전달된 파라미터의 이름과 동일한 객체의 프로퍼티(속성)에 자동으로 데이터가 주입이 된다.

* @ModelAttribute 어노테이션은 생략이 가능하다.

(매개변수로 자바클래스를 선언시 자동으로 @ModelAttribute 적용된다)

 

* @ModelAttribute 선언객체(Bean)는 View에 객체데이터로 전달시, Request영역에 자동으로 할당된다. 따라서,

${requestScope.myInfoDto.name}와 같이 ${requestScope."클래스 명(첫글자 소문자)"."프로퍼티 명"} 사용한다.

 

* @ModelAttribute("객체 지정이름") 옵션으로, 객체 사용이름을 직접 선언 시,  View에 전달된  객체데이터는 

${requestScope."객체 지정이름"."프로퍼티 명"}  으로 사용한다.


 

1. ParamTestController 선언.

* java.util.Map 사용하여 Client로 부터 전달된 파라미터 데이터를 (Key, Value)로 활용할 수 있다.

* java.util.List 사용하여 Client로 부터 동일한 이름으로 전달된 파라미터를 리스트로 처리 할 수 있다.

 (Map, List)로 파라미터를 전달 받을 시, Value는 String(문자열)만 가능하다. 

 

* @ModelAttribute 로 선언된 각 클래스는 Client로 부터 전달된 파라미터를 속성으로 받을 수 있다.

* @ModelAttribute 는 생략이 가능하다.

 

 

 

2. DTO클래스 선언 (MyInfoDto, MyInfoDto2)

* 파라미터 전달 클래스 (DTO선언)

 

 

 

3. ParamTestController 확인 (브라우저 URL요청 및 테스트)