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
- Spring Boot
- Android
- QueryDSL
- 스프링 핵심 기능
- 김영한
- 알고리즘
- java
- Proxy
- 스프링 핵심 원리
- jpa
- kotlin
- 그리디
- JDBC
- 백준
- 인프런
- http
- Thymeleaf
- AOP
- Servlet
- spring
- springdatajpa
- JPQL
- Greedy
- pointcut
- SpringBoot
- 자바
- 스프링
- transaction
- Exception
- db
Archives
- Today
- Total
개발자되기 프로젝트
[WebPage] 상품 수정 본문
1. 상품 수정 form controller
- editForm
- 상품 수정 form 보여줌.
@GetMapping("/{itemId}/edit")
public String editForm(@PathVariable("itemId") Long itemId, Model model){
Item item = itemRepository.findById(itemId);
model.addAttribute("item", item);
return "basic/editForm";
}
- edit
- 변경내용 저장 후 redirect
- redirect:/.... 으로 redirect사용 가능.
- Controller에 매핑된 @PathVariable 값은 redirect에도 사용이 가능.
@PostMapping("/{itemId}/edit")
public String edit(@PathVariable("itemId") Long itemId, @ModelAttribute Item item){
itemRepository.update(itemId, item);
return "redirect:/basic/items/{itemId}";
}
2. HTML
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<link th:href="@{/css/bootstrap.min.css}"
href="../css/bootstrap.min.css" rel="stylesheet">
<style>
.container {
max-width: 560px;
}
</style>
</head>
<body>
<div class="container">
<div class="py-5 text-center">
<h2>상품 수정 폼</h2>
</div>
<form action="item.html" th:action method="post">
<div>
<label for="id">상품 ID</label>
<input type="text" id="id" name="id" class="form-control" value="1" th:value="${item.id}"
readonly>
</div>
<div>
<label for="itemName">상품명</label>
<input type="text" id="itemName" name="itemName" class="formcontrol"
value="상품A" th:value="${item.itemName}">
</div>
<div>
<label for="price">가격</label>
<input type="text" id="price" name="price" class="form-control"
value="10000" th:value="${item.price}">
</div>
<div>
<label for="quantity">수량</label>
<input type="text" id="quantity" name="quantity" class="formcontrol"
value="10" th:value="${item.quantity}">
</div>
<hr class="my-4">
<div class="row">
<div class="col">
<button class="w-100 btn btn-primary btn-lg" type="submit">저장
</button>
</div>
<div class="col">
<button class="w-100 btn btn-secondary btn-lg"
onclick="location.href='item.html'"
th:onclick="|location.href='@{/basic/items/{itemId}(itemId=${item.id})}'|"
type="button">취소</button>
</div>
</div>
</form>
</div> <!-- /container -->
</body>
</html>
- 참고
- HTML Form은 Put, Patch 지원하지 않음. GET, POST만 사용 가능.
- PUT, PATCH는 HTTP API 전송 시 사용
3. GitHub : 210917 상품 수정
'인프런 > [인프런] 스프링 MVC 1' 카테고리의 다른 글
[WebPage] RedirectAttributes (0) | 2021.09.17 |
---|---|
[WebPage] PRG Post/Redirect/Get (0) | 2021.09.17 |
[WebPage] 상품등록 - @ModelAttribute (0) | 2021.09.17 |
[WebPage] 상품 등록 form (0) | 2021.09.17 |
[WebPage] 상품 상세 (0) | 2021.09.17 |
Comments