728x90
1. Map과 List로 주입받기
클라이언트가 전달하는 모든 파라미터 데이터를 한번에 Map/List로 주입 받을 수 있다.
* 단 동일 명으로 전달되는 2개 이상의 파라미터는 하나만 담기게 된다.
동일 명으로 전달되는 파라미터가 2개 이상이라면 List로 주입 받아야 한다.
형 변환이 자동으로 되지않아 문자열로만 받아야 한다.
<a href="test?data1=100&data2=200">test</a>
@GetMapping("/test")
public String test(@RequestParam Map<String, String> map) {
//@ReuqeustParam List<String> list
String data1 = map.get("data1");
String data2 = map.get("data2");
/*
String data3 = map.get("list");
for(String str : data3){
System.out.println("data3 = " + str);
}
*/
}
2. @ModelAttribute
이 어노테이션을 사용하면 파라미터를 객체로 주입 받을 수 있습니다.
전달되는 파라미터의 이름과 동일한 프로퍼티에 자동으로 주입됩니다.
이 어노테이션은 생략이 가능합니다.
이러한 객체를 커맨드 객체(Command Object)라고 부릅니다.
getter setter가 있는 DTO나 Domain Entity를 통해 주입됩니다.
만약 memberDTO라고 한다면,
<a href="test?data1=100&data2=200&data3=300&data3=300">test</a>
@GetMapping("/test")
public String test(@ModelAttribute memberDTO member) {
//public String test(memberDTO member) 생략가능
System.out.println("data1 = " + member.getData1());
System.out.println("data2 = " + member.getData2());
for(int number : member.getData3()){
System.out.println("data3 = " + number);
}
}
728x90
'Back-End > Spring(Boot)' 카테고리의 다른 글
커맨드 객체란? (0) | 2021.03.05 |
---|---|
스프링 ViewResolver (0) | 2021.03.05 |
스프링 파라미터 추출 (0) | 2021.03.05 |
스프링 요청방식 어노테이션 @RequestMapping / @GetMapping / @PostMapping (0) | 2021.03.05 |
spring mvc 5 pom.xml 버전관리 (0) | 2021.03.04 |