관리자 계정으로 가서 관리 메뉴들을 다시 만들어보자.
header.html
header에서 관리자메뉴일때 메뉴이름 조회하는 곳을 찾아서 주소를 준다.
컨트롤러로 가기 전에, menuCode 데이터를 가지고 와줘야하며,
컨트롤러의 상세 주소는 데이터베이스에 SUB_MENU_URL로 만들어주었기 때문에, 데이터 값을 끌어 와주면 된다.
th:each로 반복시켜 준 ${menuList} 안에 menuUrl이 들어가 있으므로, 각 순서대로 뽑아준 것을 가지고 와준다.
adminMenu-mapper.xml
메뉴와 서브메뉴 쿼리는 interceptor에서 실행한다.
MENU_001 자리에는 002, 003도 추가되었으니, #{menuCode} 로 바꿔줄 수 있다.
Admin Service
쿼리문에서 매개변수로 menuCode를 받아왔으니,
서비스 인터페이스와 클래스도 모두 매개변수로 menuCode를 넣어주자.
MenuIntercepter 인터셉터
MenuInterceptor의 modelAndView에 메인메뉴리스트 조회와 서브메뉴리스트 조회 두 쿼리문이 담겨져있다.
여기까지가 메인메뉴에 상품관리가 선택되면 서브메뉴로 카테고리관리, 상품등록, 상품관리가 조회되는 것이다.
AdminController 컨트롤러
위 카테고리 html을 조회하는 컨트롤러에 model에 menuCode를 , MENU_001 데이터를 넘겨주었다.
MenuIntercepter 인터셉터
Map은 K value 값으로 받을 수 있기 때문에 컨트롤러에서 menuCode가 K, MENU_001이 value이다.
menuCode는 문자열이기 때문에, 문자열 데이터는 toString()으로 받아줄 수 있다.
만약 MemberVO가 넘어 왔다면,
MemberVO v = (MemberVO)data.get("member"); 와 같이 형변환 해서 들고와줄 수 있다.
IntercepterConfig 인터셉터
InterceptorConfig 에서 해당 메소드에 addPathPatterns에 컨트롤러 주소를 넣어주면 html에 가기 전에 실행되게된다.
AdminController 컨트롤러
커맨드 객체로 AdminSubMenuVO를 생성만 해줘도 html로 갈때 데이터를 가져갈 수 있다.
model에 menuCoed이름으로 MENU_002, MENU_003을 각각 가져간다.
member_manage.html, order_manage.html
이렇게 DB에 저장된 MENU_002와 MENU_003 데이터 들이 각각 회원관리, 주문관리에 들어가 서브메뉴로 나타나 있는 것을 확인할 수 있다.
다음은 상품관리, 회원관리, 주문관리를 누를때마다 각각 서브메뉴를 바꿔보도록 해보자.
ConstVariable
util 패키지에서 ConstVariable 클래스안에 상수 변수를 만들어주었다.
AdminController 컨트롤러
만약 adminSubMenuVO에 데이터를 받아오지 않았다면 (null) 강제로 SUB_MENU_CODE를 넣어주었다.
이렇게 각 관리마다 서브메뉴까지 띄워보았다.
'✨ Back-end > Spring-Boot' 카테고리의 다른 글
[Spring] 쇼핑몰 - 46 Chart.js 사용해서 html에 차트 띄우기 (0) | 2023.04.17 |
---|---|
[Spring] 쇼핑몰 - 45 Map데이터 활용해서 월별 매출 페이지 조회 (0) | 2023.04.13 |
[Spring] 쇼핑몰 - 43 Ajax 사용해 form태그 한방에 넘기기 (바로구매) (0) | 2023.04.13 |
[Spring] 쇼핑몰 - 42 사용자 sub메뉴 classappend 사용해 나타내기 (0) | 2023.04.12 |
[Spring] 쇼핑몰 - 41 검색기능 추가하기 (0) | 2023.04.12 |
댓글