일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- http
- gitreset
- RFC723x
- 매핑정보가없는필드
- HTTPMESSAGE
- gitrevert
- org.apache.ibatis.binding.BindingException
- 캐쉬가능
- @Table
- fixedDelay
- KAKAOLOGINAPI
- 자바ORM표준프로그래밍
- Git
- SpringBoot
- hibernate.dialect
- 김영한JPA
- DB방언
- HTTP3
- anyMatch
- Invalid bound statement (not found)
- @Entity
- ERROR TYPE : org.apache.ibatis.binding.BindingException
- 데이터베이스 방언
- 무상태프로토콜
- initialDelay
- 네이버 연결된 서비스
- 멱등활용
- Transaction not successfully started
- 네이버로그인API
- JPA
Archives
- Today
- Total
twocowsong
@ModelAttribute, @PathVariable, @RequestBody 본문
프론트에서 form태그 또는 url로 서버까지 데이터를 전송하고 Controller에서 받은 데이터와 선언된 객체에 데이터맵핑에는 여러가지 편리한 어노테이션 존재합니다.
(객체 데이터 맵핑원리가 궁금하면 Argument Resovler를 찾아보시면됩니다.)
컨트롤러에서 객체에 쉽게 데이터를 맵핑할수있는 어노테이션을 설명드리겠습니다.
@Getter
@Setter
public class Car{
private int speed;
}
맵핑하기위한 Car객체입니다.
@ModelAttribute
@ResponseBody
@RequestMapping("/test")
public String modelAttributeTest(@ModelAttribute Car car) {
log.info("car speed : " + car.getSpeed());
return "ok";
}
파라미터명과 보내는 key의 이름이 동일하다면 자동으로 맵핑됩니다. 참고로 @ModelAttribute 생략이 가능합니다
public String modelAttributeTest(Car car) {}
위처럼 생략이 가능합니다.
@PathVariable
@ResponseBody
@RequestMapping("/test/{speed}")
public String pathVariableTest(@PathVariable("speed") String speed) {
log.info("car speed : " + speed);
return "ok";
}
@PathVariable는 url에서 데이터값을 얻어 맵핑됩니다. 벨로그 현재 url도 PathVariable로 개발됐다고 생각합니다. PathVariable도 ("speed")가 변수이름과 같으면 생략이 가능합니다.
@RequestMapping("/test/{speed}")
public String pathVariableTest(@PathVariable String speed) {}
위처럼 생략해서 사용이 가능합니다.
@RequestBody
RequestBody는 rest api 통신을 할때 많이 사용합니다.
@ResponseBody
@RequestMapping("/test/body")
public String requsetBodyTest(@RequestBody Car car) {
log.info("car speed : " + car.getSpeed());
return "ok";
}
Body에 데이터를 JSON형태로 전송시 자동으로 맵핑해줍니다.
'IT > SpringBoot' 카테고리의 다른 글
@RestController @Controller (0) | 2022.01.24 |
---|---|
@Scheduled (0) | 2022.01.23 |
Redirect, forward, RedirectAttributes (0) | 2022.01.23 |
@Data (0) | 2022.01.18 |
@Value 어노테이션 (0) | 2022.01.18 |