본문 바로가기
✨ Back-end/Spring-Boot

[Spring] 쇼핑몰 - 13 관리자 메뉴, 서브메뉴 띄우기 side_layout

by 환풍 2023. 3. 28.
728x90

상품 정보 테이블과 상품 이미지 정보 테이블 두개를 만들었다.

 

관리자 메뉴와 관리자 서브 메뉴 데이터 베이스도 만들어주었다.

 

AdminController 컨트롤러

이곳에 메뉴 목록이 조회될 쿼리문이 들어올 것이다.

adminMenu-mapper.xml

관리자 메뉴 정보 DB를 끌어와 resultMap에 데이터를 저장시켜준다.

 

AdminService 인터페이스

매개변수 및 리턴 타입 결정 방법(우선적으로 실행 시 쿼리를 작성)
매개변수 : 쿼리 실행 시 빈 값을 채울 용도
1. 쿼리에서 채워 줄 값이 없을 경우 : 매개변수 없음
2. 채워줄 값이 하나일 경우
2-1) 채워줄 값이 숫자인 경우 : 매개변수 int형 하나
2-2) 채워줄 값이 문자인 경우 : 매개변수 String형 하나
3. 채워줄 값이 여러개인 경우 : 매개변수는 VO 객체.
리턴타입 : 쿼리 실행 결과를 어떻게 받아올지에 대한 정의
INSERT, UPDATE, DELETE 쿼리 실행 결과는
리턴타입을 int 혹은 void 사용하면됨. int로 받을 땐 return 필요o  void는 필요x
SELECT 쿼리 결과의 리턴타입은 크게 두 가지로 나뉨.
조회결과 데이터가 무조건 한줄만 조회 : VO 객체.
조회 결과 데이터가 0줄이상 가변적일 경우 : List<VO> 객체.

AdminServiceImpl 클래스

AdminController 컨트롤러

관리자 메뉴에 뜨게 될 adminMenu 리스트를 쿼리에 넣고 menuList라는 이름으로 html에 뿌려준다.

 

header.html 수정전

header.html에서  session값에 들어가있는 loginInfo 값이 다를 때마다 비교해서 적절한 목록을 조회시켜줘야한다. 관리자는 컨트롤러에서 만든 메뉴 목록 조회를, 사용자나 비 로그인은 카테고리 목록 조회를 보여주자.

 

header.html 수정후

위와 같이 관리자 따로, 사용자 비로그인 따로 해서 코드를 짜보았다. 조금 문제가 있지만 일단 넘어가자.

나중에 바꿀 것이다. 일단 임시로만 이렇게 해두자.

 

관리자로 로그인 하게 되면 목록에 상품관리, 회원관리, 주문관리와 같은 데이터베이스에서 만든 adminMenu데이터가 뜬다.

 

이렇게 사용자로 로그인 했을 때와, 로그인 하지 않았을 때에는 관리자가 카테고리를 등록한 것들만 목록에 뜨게된다.

 

그럼이제 관리자 서브 메뉴도 만들어보자.

adminMenu-mapper.xml

먼저 adminMenu-mapper에 관리자 서브 메뉴 데이터를 resultMap과 함께 쿼리도 작성해준다.

 

AdminService 인터페이스와 AdminServiceImpe 클래스

 

AdminController 컨트롤러

서브 메뉴 목록 조회쿼리도 컨트롤러에 이와 같이 추가해주면 된다.

 

admin_side.html

위 코드를 아래와 같이 수정하면 사이드 목록도 뜰것이다.

 

 <a th:href="@{'/admin' + ${subMenu.subMenuUrl}}"> 를 주면서 경로에 데이터 값을 넣어주었다.

경로는 SUB_MENU_URL 과 같다.

 

AdminController 컨트롤러

컨트롤러에서 메뉴 목록조회와 서브 메뉴목록조회 쿼리문을 복사해서

상품 등록 페이지 에 복사 붙여넣기한다. 이후 Model객체를 추가해준다.

 

stock_manage.html과 update_item.html 생성

 

AdminController 컨트롤러

똑같이 등록상품과 재고상품 수정 페이지에서도 나타날 수 있도록 하기 위해 Model 객체를 생성한 후 , 

메뉴 목록 조회 쿼리문과 서브메뉴 목록 조회 쿼리문을 복붙해주면 완성이다.

 

 

이렇게 모든 페이지에서 메뉴와 서브메뉴 목록이 잘 나타나있는 것을 확인할 수 있다.

반응형

댓글