스프링
@RequestParam
gilssang97
2021. 9. 20. 18:47
@RequestParam 사용
@RequestParam은 사용자가 전달하는 값을 1:1로 매핑해주는 어노테이션이다.
보통 파라미터를 통해 값을 전달할 때 자주 사용한다.
(1) 파라미터 이름을 지정하고 받기
@Slf4j
@Controller
public class request_mapping {
@RequestMapping("/request_mapping")
public String visit(@RequestParam(name = "name") String name,
@RequestParam(name = "age") Integer age,
Model model) {
model.addAttribute("name", name);
model.addAttribute("age", age);
return "home";
}
}
- name이라는 파라미터의 값을 name에 저장한다.
- age라는 파라미터의 값을 age에 저장한다.
(2) 파라미터 이름을 생략하고 받기
@Slf4j
@Controller
public class request_mapping {
@RequestMapping("/request_mapping")
public String visit(@RequestParam String name,
@RequestParam Integer age,
Model model) {
model.addAttribute("name", name);
model.addAttribute("age", age);
return "home";
}
}
- 파라미터의 변수명과 저장 변수명이 동일해야함
(3) 애노테이션을 생략하고 받기
@Slf4j
@Controller
public class request_mapping {
@RequestMapping("/request_mapping")
public String visit(String name,
Integer age,
Model model) {
model.addAttribute("name", name);
model.addAttribute("age", age);
return "home";
}
}
- 파라미터의 변수명과 저장 변수명이 동일해야함
보편적으로 다음과 같은 3가지 방법을 이용한다.
만약, 다른 사람과 협업 중이라면 (3) 방법을 사용하기에는 명확하지 않을 수 있고 (1)은 파라미터 명을 단순히 일치시켜주면 코드의 길이 자체를 줄일 수 있기에 (2)를 사용하면 좋을 것 같다.
@RequestParam 파라미터
(1) name
@Slf4j
@Controller
public class request_mapping {
@RequestMapping("/request_mapping")
public String visit(@RequestParam(name = "name") String name,
@RequestParam(name = "age") Integer age,
Model model) {
model.addAttribute("name", name);
model.addAttribute("age", age);
return "home";
}
}
- 위에서 알아본 것과 같이 파라미터의 이름을 지정해주는 것이다.
(2) required
@Slf4j
@Controller
public class request_mapping {
@RequestMapping("/request_mapping")
public String visit(@RequestParam(required = true) String name,
@RequestParam(required = false) Integer age,
Model model) {
model.addAttribute("name", name);
model.addAttribute("age", age);
return "home";
}
}
- 해당 파라미터가 필수요소인지를 지정해준다.
- required=true가 default 값이다.
- required=false인데 값이 들어오지 않았다면 null이 들어온다.
(3) defaultValue
@Slf4j
@Controller
public class request_mapping {
@RequestMapping("/request_mapping")
public String visit(@RequestParam(required = true) String name,
@RequestParam(required = false, defaultValue = "0") Integer age,
Model model) {
model.addAttribute("name", name);
model.addAttribute("age", age);
return "home";
}
}
- 해당 파라미터가 비어있을 때, default 값을 지정해준다.
@RequestParam Map으로 조회
@Slf4j
@Controller
public class request_mapping {
@RequestMapping("/request_mapping")
public String visit(@RequestParam Map<String, Object> param,
Model model) {
for (String p : param.keySet()) {
model.addAttribute(p, param.get(p));
}
return "home";
}
}
- 파라미터 값들을 Map으로 받는다.