spring mvc : item list
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
package com.example.itemservice.web.basic;
|
||||
|
||||
import com.example.itemservice.domain.item.Item;
|
||||
import com.example.itemservice.domain.item.ItemRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.List;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/basic/items")
|
||||
@RequiredArgsConstructor
|
||||
public class BasicItemController {
|
||||
|
||||
private final ItemRepository itemRepository;
|
||||
|
||||
@GetMapping
|
||||
public String items(Model model) {
|
||||
List<Item> items = itemRepository.findAll();
|
||||
model.addAttribute("items", items);
|
||||
return "basic/items";
|
||||
}
|
||||
|
||||
// 테스트용 데이터
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
itemRepository.save(new Item("itemA", 10000, 10));
|
||||
itemRepository.save(new Item("itemB", 20000, 20));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6" crossorigin="anonymous">
|
||||
</head>
|
||||
<body>
|
||||
<div class="container" style="max-width: 600px">
|
||||
<div class="py-5 text-center">
|
||||
<h2>상품 목록</h2>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<button class="btn btn-primary float-end"
|
||||
onclick="location.href='addForm.html'"
|
||||
th:onclick="|location.href='@{/basic/items/add}'|"
|
||||
type="button">상품
|
||||
등록</button>
|
||||
</div>
|
||||
</div>
|
||||
<hr class="my-4">
|
||||
<div>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>상품명</th>
|
||||
<th>가격</th>
|
||||
<th>수량</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr th:each="item : ${items}">
|
||||
<td><a href="item.html" th:href="@{/basic/items/{itemId}(itemId=${item.id})}" th:text="${item.id}">회원 ID</a></td>
|
||||
<td><a href="item.html" th:href="@{/basic/items/{itemId}(itemId=${item.id})}" th:text="${item.itemName}">상품명</a></td>
|
||||
<td th:text="${item.price}">10000</td>
|
||||
<td th:text="${item.quantity}">10</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div> <!-- /container -->
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user