Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- kotlin
- Spring Boot
- Proxy
- 알고리즘
- pointcut
- JPQL
- Android
- SpringBoot
- db
- Servlet
- Exception
- springdatajpa
- jpa
- Thymeleaf
- JDBC
- 그리디
- 자바
- QueryDSL
- http
- 스프링 핵심 원리
- spring
- 스프링 핵심 기능
- AOP
- 스프링
- java
- 인프런
- 김영한
- Greedy
- 백준
- transaction
Archives
- Today
- Total
개발자되기 프로젝트
[WebPage] 상품등록 - @ModelAttribute 본문
1. POST - HTML Form
- content-type: application/x-www-form-urlencoded
- 메시지 바디에 쿼리 파리미터 형식으로 전달 itemName=itemA&price=10000&quantity=10
- 예) 회원 가입, 상품 주문, HTML Form 사용
- Form에서 지정한 이름으로 넘어옴.
2. Controller
2.1 @RequestParam
- 요청 파라미터를 처리하는 방법
- 변수 명은 Form에서 지정한 name으로 넘어옴.
- 상품 등록 form에서
- 상품 명은 itemName, 가격은 price, 수량은 quantity로 넘어온다.
- @RequestParam을 활용하여 요청 파라미터 사용이 가능.
@PostMapping("/add")
public String save(@RequestParam String itemName,
@RequestParam int price,
@RequestParam Integer quantity,
Model model){
Item item = new Item();
item.setItemName(itemName);
item.setPrice(price);
item.setQuantity(quantity);
itemRepository.save(item);
model.addAttribute("item", item);
return "basic/item";
}
2.2 @ModelAttribute
- @ModelAttribute가 제공하는 기능
- 받고자 하는 타입의 객체 생성 및 요청파라미터와 바인딩
- "name"을 지정하면 해당 alias로 Model에 addAttribute() 실행
- Model받을 필요도 없음..
@PostMapping("/add")
public String addItemV2(@ModelAttribute("item") Item item){
itemRepository.save(item);
//model.addAttribute("item", item);
return "basic/item";
}
2.3 @ModelAttribute - name 생략
- @ModelAttribute의 name도 생략이 가능하다.
- default : Class명을 맨 첫 글자만 소문자로 변경해서 ModelAttribute에 넣어줌.
- 즉 model.addAttribute("item", item) 대신 해줌 ㅋㅋㅋ
@PostMapping("/add")
public String addItemV3(@ModelAttribute Item item){
itemRepository.save(item);
return "basic/item";
}
2.4 @ModelAttribute 자제를 생략 ㅋㅋㅋㅋㅋㅋ
- ㅋㅋㅋㅋ
- model.addAttribute("item", item) 대신 해줌 ㅋㅋㅋ
- 아 근데 너무줄이는 것 같다..
@PostMapping("/add")
public String addItemV4(Item item){
itemRepository.save(item);
return "basic/item";
}
3. GitHub : 210917 @ModelAttribute
'인프런 > [인프런] 스프링 MVC 1' 카테고리의 다른 글
[WebPage] PRG Post/Redirect/Get (0) | 2021.09.17 |
---|---|
[WebPage] 상품 수정 (0) | 2021.09.17 |
[WebPage] 상품 등록 form (0) | 2021.09.17 |
[WebPage] 상품 상세 (0) | 2021.09.17 |
[WebPage] Thymeleaf로 고치기 (0) | 2021.09.17 |
Comments