목차
반응형
![[Spring] @RequestParam에 대해 알아봅시다.](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
@RequestParam
HTTP 요청으로 View에서 값을 바인딩해 받아옵니다.
@RequestParam("가져올 데이터의 이름", Type T 변수명 var, Model model) 형태로 쓰입니다.
required, defaultValue
java
닫기// 기본 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 |