반응형
![[Spring] @RequestParam에 대해 알아봅시다.](https://blog.kakaocdn.net/dna/bGopV4/btsABzOqiwg/AAAAAAAAAAAAAAAAAAAAAJ9McEfQZKQpFMxlLfamOir6MlUVMWdF4tP-vEJR1JGP/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1769871599&allow_ip=&allow_referer=&signature=11I0XnVWk4T12AP3M7lPcAJPYzI%3D)
@RequestParam
HTTP 요청으로 View에서 값을 바인딩해 받아옵니다.
@RequestParam("가져올 데이터의 이름", Type T 변수명 var, Model model) 형태로 쓰입니다.
required, defaultValue
// 기본
String inputUsername(@RequestParam(name = "name", required = true,
defaultValue = "guest"), String user)
return user;
// 파라미터 이름이 변수와 같으면 생략 가능
String inputUsername(@RequestParam("name", required = true,
defaultValue = "guest"), String user)
return user;
예제는 뷰에서 해당 이름의 파라미터 값을 받아와 매개변수인 user로 바인딩하는 작업을 수행합니다.
- required : 파라미터에 원하는 value 값이 없는 경우 required = false 면 null 값을 저장합니다.
- required = true 면 404 error가 발생합니다.
defaultValue : 요청한 value 값이 없을 때 defaultValue 값으로 대체됩니다.
- required = true에서 발생하는 404 error를 방지합니다.
@RequestParam의 생략
@RequestParam은 매개변수 = 데이터를 전송받는 폼 필드의 이름과 일치할 시 생략이 가능합니다.
@PostMapping("/write")
public String write(@RequestParam("title") String title, @RequestParam("content") String content){
articleService.create(title, content);
return "redirect:/article/list";
}
예제는 /write로 접속 시 view 단에서 폼 필드의 이름이 title, content에 해당하는 value를 전송받아 인자로 입력받습니다.
그러나, 폼 필드의 이름과 메소드 매개변수가 동일하게 title, content이라면 Spring은 이를 인식해 바인딩을 수행합니다.
따라서, 명시적인 @RequestParam이 생략 가능하며, 해당 내용은 아래와 같이 바꿔 적용할 수 있습니다.
@PostMapping("/write")
public String write(String title, String content){
articleService.create(title, content);
return "redirect:/article/list";
}
반응형
'DEV > Spring' 카테고리의 다른 글
| [Spring Boot] MultipartFile 기반 이미지 저장 / 업로드 기능 구현 (1) | 2023.12.20 |
|---|---|
| [Spring] @Configuration을 활용한 @Bean 등록 방법 (0) | 2023.11.23 |
| [Spring] @Autowired 활용 의존성 주입, Spring Bean (2 / 2) (0) | 2023.11.16 |
| [Spring] 의존성 주입(Dependency Injection)의 정의와 설명 (1 / 2) (0) | 2023.11.16 |
| [Spring Boot] java 기반 Spring Boot 프로젝트 생성 방법 (0) | 2023.10.12 |