본문 바로가기
Spring Tutorial

[스프링MVC -상품 관리 웹 개발 4] 상품 등록 폼

by 미소5 2023. 8. 31.
  • 컨트롤러 로직 추가
/** 상품 등록 폼*/
@GetMapping("/add")
public String addForm() {   
    return "basic/addForm";     //뷰 템플릿 호출 (내부 호출) 
}
  • 단순히 뷰 템플릿만 호출

 


  • 뷰 템플릿(templates)
    • /resources/templates/basic/addForm.html
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
 <meta charset="utf-8">
 <link href="../css/bootstrap.min.css"
 th: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>
 
 <h4 class="mb-3">상품 입력</h4>
 
 
 <form action="item.html" th:action method="post">
 <div>
 <label for="itemName">상품명</label>
 <input type="text" id="itemName" name="itemName" class="formcontrol" placeholder="이름을 입력하세요">
 </div>
 <div>
 <label for="price">가격</label>
 <input type="text" id="price" name="price" class="form-control"placeholder="가격을 입력하세요">
 </div>
 <div>
 <label for="quantity">수량</label>
 <input type="text" id="quantity" name="quantity" class="formcontrol" placeholder="수량을 입력하세요">
 </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='items.html'"
 th:onclick="|location.href='@{/basic/items}'|"
 type="button">취소</button>
 </div>
 </div>
 
 </form>
 
 
</div> <!-- /container -->
</body>
</html>

 


  • 속성 변경 - th:action
    • HTML form에서 action값이 없으면?  현재 URL에 데이터를 전송한다.
    • 상품 등록 폼의 URL과 실제 상품 등록을 처리하는 URL을 똑같이 맞추고 HTTP 메서드로 두 기능을 구분 (이렇게 하면 하나의 URL로 등록 폼과, 등록 처리를 깔끔하게 처리할 수 있다.)
      • 상품 등록 폼: GET /basic/items/add
      • 상품 등록 처리: POST /basic/items/add

 

 


  • 취소시 상품 목록으로 이동
th:onclick="|location.href='@{/basic/items}'|"

 


  • 상품 등록 폼은 POST 방식으로 서버에 데이터를 전달한다.
    • content-type: application/x-www-form-urlencoded
    • 메시지 바디에 쿼리 파리미터 형식으로 전달 itemName=itemA&price=10000&quantity=10

 

[스프링 MVC 10] 서블릿: HTTP 요청 데이터 (*중요) (tistory.com)

 

[스프링 MVC 10] 서블릿: HTTP 요청 데이터 (*중요)

HTTP 요청 데이터를 어떻게 조회하는지 알아보자! HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법 (3가지) 1. GET - 쿼리 파라미터 /url?username=hello&age=20 메시지 바디 없이, URL

joly156.tistory.com


 

728x90
반응형