Develop/곤부📙
토요스터디 / 15주차
밀김
2023. 6. 4. 13:13
728x90
< 스프링 복습 >
<!DOCTYPE html>
<html lang="en"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{inc/layout}"
>
<head>
<link rel="stylesheet" href="../css/menu.css" />
<link rel="stylesheet" href="../css/menu/list.css" />
</head>
<body>
<main layout:fragment="content">
<div class="tab-search-container">
<div class="top-img-title">
<img src="/image/menu-management.svg" alt="제목입력" />
<h1>제발요</h1>
</div>
<div class="tab-search-wrap">
<section class="tab-section">
<h1>탭 목록</h1>
<ul>
<li class="selected"><a href="">전체메뉴</a></li>
<li><a href="">커피</a></li>
<li><a href="">수제청</a></li>
<li><a href="">샌드위치</a></li>
<li><a href="">쿠키</a></li>
</ul>
</section>
<!-- -------------------------------------------------- -->
<section class="search-section">
<h1>토요일공부</h1>
<form action="">
<input type="text" value="" name="search" />
<button type="submit" class="icon icon-search"></button>
</form>
</section>
</div>
</div>
<section class="menu-wish-cart-in-section">
<h1>메뉴 목록</h1>
<section class="menu" th:each="m : ${list}">
<div>
<a href="detail" th:href="@{../menu/detail(id=${m.id})}">
<img src="/image/espresso.svg " alt="에스프레소" />
</a>
</div>
<h1 th:text="${m.korName}">에스프레소</h1>
<h1 th:text="${m.engName}">Espresso</h1>
<div th:text="${m.price}">2,500원</div>
<h2>Espresso</h2>
<div>2,500원</div>
<div>
<a href="" class="icon icon-heart"></a>
</div>
<div>
<a href="" class="icon icon-plus icon-lg">추가</a>
<a href="" class="icon icon-cart icon-lg">장바구니</a>
</div>
</section>
</section>
<div class="price-and-cart-in-count">
<div>
<span>금액 42,500</span>
</div>
<div class="cart-in-count">
<a href="../cart/list" class="icon icon-cart-count"></a>
<span>7</span>
</div>
</div>
</main>
</body>
</html>
package kr.co.rland.web.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import kr.co.rland.web.entity.Menu2;
import kr.co.rland.web.repository.MenuRepository2;
@Service
public class MenuServiceImp2 implements MenuService2{
@Autowired
private MenuRepository2 repository2;
public List<Menu2> getlist(){
List<Menu2> list = repository2.findAll();
return list;
}
}
package kr.co.rland.web.repository;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import kr.co.rland.web.entity.Menu2;
@Mapper
public interface MenuRepository2 {
@Select("select * from menu")
List<Menu2> findAll();
}
package kr.co.rland.web.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import kr.co.rland.web.entity.Menu2;
import kr.co.rland.web.service.MenuService2;
@Controller
@RequestMapping("menu")
public class MenuController1 {
@Autowired
private MenuService2 service2;
@GetMapping("list")
public String list(Model model,
@RequestParam(name="q",required = false)String query) {
List<Menu2>list = service2.getlist();
model.addAttribute("list",list);
return "/menu/list2";
}
@GetMapping("detail2")
public String detail2() {
return "/menu/detail2";
}
}
package kr.co.rland.web.service;
import java.util.List;
import kr.co.rland.web.entity.Menu2;
public interface MenuService2 {
List<Menu2> getlist();
}
controller는 사용자의 요청을 출력해주기위함
(사용자와 가장가까이있는 것)
service는 업무를 담당한다 (업무에 대한 서비스)
온전히 클라이언트의 요청을 수반하는 기능들을 갖고있는 것
클라이언트 요청을 처리하는 로직 코드를 서비스 구현체에 만드는 것
repository는 시퀄을 대신하는 역할자이다
온전히 시퀄의 기능을 수반하고 있는 것
데이터(쿼리)를 담고있다
728x90