GET 방식
Get method의 URL을 받을 때는 Controller에서 @GetMapping(url)을 이용해야 한다.
(get) ?key = value
?key=value 형태로 url이 넘어올 때 Controller에서 받는 방법 => @RequestParam 이용
- 이 때, key라는 변수에 ?key=value로 넘어온 value 값이 들어간다.
- @RequestParam에 required 값을 설정하면 없어도 실행된다. (기본값은 required="true", 만약 값이 안넘어올 수도 있다면 반드시 require="false" 설정을 해야 오류가 나지 않는다.)
@GetMapping("/get/response2")
public String getAPI2(@RequestParam(required = false) String name2, Model model) {
model.addAttribute("name", name2);
return "response";
}
(get) ~/{value}
~/{value} 형태로 url이 넘어올 때 Controller에서 받는 방법 => @PathVariable 이용
- 이 때, value라는 변수에 url로 넘어온 값이 담긴다.
@GetMapping ({"/get/response3/{name}/{age}", "/get/response3/{name}"})
public String getAPI3(@PathVariable String name, @PathVariable(value = "age", required = false) String abc, Model model) {
model.addAttribute("name", name);
model.addAttribute("age", abc);
return "response";
}
- age 위치에 넘어온 값이 abc 라는 변수에 담기게 된다.
- mapping을 할 때 둘 중 한 값만 들어오면 객체에 묶어서 맵핑할 수 있다.
POST 방식
Post method의 URL을 받을 때는 Controller에서 @GetMapping(url)을 이용해야 한다.
- 만약 API로만, 데이터만 전달하고 싶을 때(node에서의 res.send()와 동일)
일반 폼 전송 | 일반 폼 전송(DTO) | 일반 폼 전송(VO) | axios 전송(DTO) | axios 전송(VO) | |
GET |
@RequestParam : 가능 | 가능 | NULL | 일반 폼 전송 : 가능 | 일반 폼 전송 : 가능 |
@ParamVariable : 가능 | GET DTO : 가능 | GET VO : NULL | |||
POST | @RequestParam : 가능 | - | - | 일반 폼 전송 : 불가 | 일반 폼 전송 : 불가 |
POST @RequestBody와 함께 | 불가 | 불가 | 가능 | 가능 | |
POST @RequestBody 없이 | 가능 | NULL | NULL | NULL |
- 일반 폼 전송(GET)은 RequestParam와 ParamVariabble / 일반 폼 전송(POST)은 RequestParam 가능 하다.
- DTO를 쓸 때 axios를 사용 한다면 @RequestBody를 써줘야 한다.
'Sesac 웹 풀스택[새싹X코딩온] > Spring' 카테고리의 다른 글
6. JPA(Java Persistence API) 및 실습 (0) | 2023.03.16 |
---|---|
5. JDBC, MyBatis 연결 (0) | 2023.03.16 |
3. Rest API 정의(DTO,VO, Annotation) (0) | 2023.03.11 |
2. Spring Boot 사용하기(feat: Intellij, Spring initializer, thymeleaf) (0) | 2023.03.09 |
1. Spring framework 특징 (0) | 2023.03.09 |