관련 포스팅 :# Spring - 미니쇼핑몰 상품관리 구현해보기(상품목록, 상세보기)
관련 포스팅 :# Spring - 미니쇼핑몰 상품관리 구현해보기(장바구니 담기, 목록, 수정, 삭제)
관련 포스팅 :# Spring - 미니쇼핑몰 상품관리 구현해보기(관리자 로그인, 로그아웃/ 관리자 영역 설정)
관리자 권한으로 상품을 등록하고, 수정, 삭제처리를 구현해보자.
1. View(JSP)
1) 상품등록 페이지 (productWrite.jsp)
구현화면
상품등록페이지의 Jvascript코드
상품등록 버튼 클릭이벤트가 발생하면 폼안의 값들을 유효성 검사한 뒤에 서버로 전송
상품목록 버튼 클릭이벤트가 발생하면 상품 목록페이지로 이동
상품등록페이지의 HTML코드
<form id="form1" name="form1" enctype="multipart/form-data" method="post">
enctype="multipart/form-data" method="post"
: 이미지파일 업로드하기 위한form
태그 속성
2) 상품목록 페이지 (productList.jsp)
구현화면 - 권한에 따라 상품목록의 차이점 구분
일반 사용자 상품목록
관리자 상품목록
상품목록 페이지 Javascript 코드
상품등록 버튼 클릭이벤트가 발생하면 상품등록페이지로 이동
상품목록 페이지 HTML 코드
<c:if test="${sessionScope.adminId != null}">상품등록 버튼</c:if>
- session에 저장된id가 관리자id이면 상품등록 버튼 출력
<c:if test="${sessionScope.adminId != null}">상품편집 링크</c:if>
- session에 저장된id가 관리자id이면 상품편집 링크 출력
2) 상품수정, 삭제 페이지 (productEdit.jsp)
구현화면
상품수정, 삭제페이지 Javascript 코드
상품 수정버튼 클릭이벤트가 발생하면 유효성 검사후 업데이트 처리
상품 삭제버튼 클릭이벤트가 발생하면confirm()
함수를 이용하여 삭제확인을 한 뒤 삭제처리
상품 목록버튼 클릭이벤트가 발생하면 상품 목록 페이지로 이동
상품수정, 삭제페이지 HTML 코드
<form id="form1" name="form1" enctype="multipart/form-data" method="post">상품업데이트</form>
enctype="multipart/form-data" method="post"
: 이미지파일 업로드하기 위한form
태그 속성
<input type="file" id="productPhoto" name="productPhoto">
: 이미지파일 업로드 태그
2. Controller(흐름제어)
상품관련 컨트롤러(ProductCotroller)
@RequestMapping("write.do")
: 상품등록 페이지 매핑
@RequestMapping("insert.do")
: 상품등록 처리 매핑
new File(path).mkdirs();
: 이미지파일을 저장할 디렉토리 생성
vo.getProductPhoto().transferTo(new File(path+filename));
:path
디렉토리,filenmae
원본이미지파일명, 서버에 임시 저잗된 파일을 저장디렉토리로 전송
return "redirect:/shop/product/list.do";
상품등록 처리후 목록페이지로 리다이렉트
@RequestMapping("edit/{productId}")
: 상품 편집 페이지 매핑
- 상품편집페이지와 상품정보를 ModelAndView를 이용하여 리턴
@RequestMapping("update.do")
: 상품 편집 처리 매핑
- 상품 이미지 파일을 변경할 경우, 상품등록시 이미지파일을 업로드 한경우와 동일하게 처리
- 상품 이지미 파일을 변경하지 않을 경우, 기존의 파일명을 가져와서 처리
return "redirect:/shop/product/list.do";
: 상품목록페이지로 리다이렉트
@RequestMapping("delete.do")
: 상품 삭제 처리 매핑
- 상품이미지정보를 조회한 뒤 상품이미지와 DB레코드를 함께 삭제처리
3. Service(비지니스로직, DB연동 이외의 핵심업무 처리)
상품관련 Service (ProductServiceImpl)
insertProduct(ProductVO vo)
: 상품 추가/입력 처리를 위해 상품관련DAO의insertProduct()
메서드 호출updateProduct(ProductVO vo)
: 상품 수정처리를 위해 상품관련DAO의updateProduct()
메서드 호출deleteProduct(int productId)
: 상품 삭제처리를 위해 상품관련DAO의deleteProduct()
메서드 호출fileInfo(int productId)
: 상품이미지 파일 삭제처리를 위해 상품관련DAO의fileInfo()
메서드
4. DAO(비지니스로직, DB연동작업처리)
상품관련 DAO (ProductDAOImpl)
insertProduct(ProductVO vo)
: 상품정보 insertupdateProduct(ProductVO vo)
: 상품정보 updatedeleteProduct(int productId
: 상품정보 deletefileInfo(int productId)
: 상품이미지 삭제를 위한 이미지파일 정보를 select조회한 결과를 리턴
5. MybatisMapper(SQL문)
상품관련 Mapper (productMapper.xml)
insertProduct
: 상품 추가를 위해 insert sqlupdateProduct
: 상품 수정/편집을 위해 update sqldeleteProduct
: 상품 레코드 삭제를 위한 delete sqlfileInfo
: 상품 이미지파일 삭제를 위한 이미지파일명 select sql
댓글을 사용할 수 없습니다.