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