일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 스프링 게시판 구현
- 로그인 기능
- 삭제 구현
- 스프링 프로젝트 설정
- BCrypt 적용
- 인증번호 전송
- arraylist
- 스프링 파일 삭제
- 회원가입 기능
- 쇼핑몰 포트폴리오
- ResponseEntity
- 스프링 업로드
- 쇼핑몰 프로젝트
- 정규표현식
- 로그아웃 기능 구현
- 파일 업로드
- spring 프로젝트
- 스프링 쇼핑몰 프로젝트
- oracle 설치방법
- 스프링 HikariCP
- 스프링 이미지
- spring 쇼핑몰
- 이미지 출력
- 스프링 포트폴리오
- 스프링 메일 전송
- Bcrypt
- 스프링 쇼핑몰
- 스프링 프로젝트
- 스프링 게시판
- 스프링 프로젝트 기본 설정
- Today
- Total
Kim VamPa
[Spring][쇼핑몰 프로젝트][22] 상품 정보 삭제 구현 본문
프로젝트 Github : https://github.com/sjinjin7/Blog_Project
프로젝트 포스팅 색인(index) : https://kimvampa.tistory.com/188
목표
상품 정보 삭제 구현
'상품 수정 페이지'에서 '삭제' 버튼을 추가하여 클릭 시 해당 상품 정보의 삭제를 수행하는 기능 구현을 목표로 합니다.
순서
1. Mapper
2. Service
3. Controller
4. View 처리
1. Mapper
AdminMapper.java
상품 정보 삭제 쿼리를 수행하는 메서드를 AdminMapper.java 인터페이스에 추가합니다.
/* 상품 정보 삭제 */
public int goodsDelete(int bookId);
AdminMapper.xml
앞서 선언한 메서드가 실행해야할 태그와 쿼리문을 작성합니다.
<!-- 상품 정보 삭제 -->
<delete id="goodsDelete">
delete from vam_book where bookId = #{bookId}
</delete>
AdminMapperTests.java
작성한 Mapper 메서드가 정상적으로 동작하는지 Junit 테스트합니다.
/* 상품 정보 삭제 */
@Test
public void goodsDeleteTest() {
int bookId = 169;
int result = mapper.goodsDelete(bookId);
if(result == 1) {
System.out.println("삭제 성공");
}
}
2. Service
AdminService.java
삭제 Mappper 메서드를 호출하는 Service 메서드를 작성하겠습니다. AdminService.java에 아래의 메서드 선언부를 추가합니다.
/* 상품 정보 삭제 */
public int goodsDelete(int bookId);
AdminServiceImpl.java
오버라이딩 하여 앞서 선언한 메서드의 구현부를 작성합니다.
/* 상품 정보 삭제 */
@Override
public int goodsDelete(int bookId) {
log.info("goodsDelete..........");
return adminMapper.goodsDelete(bookId);
}
3. Controller
AdminController.java에 상품 정보 삭제 기능을 수행하는 url 매핑 메서드를 작성합니다. 메서드 수행 후 리다이렉트 방식으로 '상품 목록' 페이지로 이동되도록 하였고, 삭제를 수행하는 Service 메서드를 수행 후 반환받는 데이터를 '상품 목록' 페이지에 전성되도록 작성하였습니다.
/* 상품 정보 삭제 */
@PostMapping("/goodsDelete")
public String goodsDeletePOST(int bookId, RedirectAttributes rttr) {
logger.info("goodsDeletePOST..........");
int result = adminService.goodsDelete(bookId);
rttr.addFlashAttribute("delete_result", result);
return "redirect:/admin/goodsManage";
}
4. View 처리
goodsModify.jsp
goodsModify.jsp 의 버튼이 모여있는 태그에 아래의 버튼 태그를 추가해줍니다.
<button id="deleteBtn" class="btn delete_btn">삭 제</button>
추가해준 버튼이 동작하도록 <script> 태그 내부에 아래의 Javascript코드를 추가합니다.
/* 삭제 버튼 */
$("#deleteBtn").on("click", function(e){
e.preventDefault();
let moveForm = $("#moveForm");
moveForm.find("input").remove();
moveForm.append('<input type="hidden" name="bookId" value="${goodsInfo.bookId}">');
moveForm.attr("action", "/admin/goodsDelete");
moveForm.attr("method", "post");
moveForm.submit();
});
goodsModify.css
추가해준 버튼의 css 설정을 해주기 위해 goodsModify.css 파일에 아래의 코드를 추가하였습니다.
.delete_btn{
background-color: #efcdcd;
}
.delete_btn:hover{
background-color : #e4a7a7;
}
goodsManage.jsp
삭제 기능 수행 후 서버에서 전송받은 데이터에 따라 경고 문구가 출력되도록 <script> 코드의 doucment ready 메서드 내에 아래의 코드를 추가합니다.
/* 삭제 결과 경고창 */
let delete_result = '${delete_result}';
if(delete_result == 1){
alert("삭제 완료");
}
테스트
삭제 기능이 정상적으로 수행되는지 '상품 목록' 페이지로 이동이 되는지, 경고문구가 뜨는지 확인합니다.
REFERENCE
DATE
- 2020.04.29
'스프링 프레임워크 > 쇼핑몰 프로젝트' 카테고리의 다른 글
[Spring][쇼핑몰 프로젝트][24] 상품 이미지 업로드(준비작업) (2) | 2021.05.03 |
---|---|
[Spring][쇼핑몰 프로젝트][23] 작가 정보 삭제 구현 (0) | 2021.04.30 |
[Spring][쇼핑몰 프로젝트][21] 상품정보 수정 구현 - 3 (5) | 2021.04.28 |
[Spring][쇼핑몰 프로젝트][21] 상품정보 수정 구현 - 2 (4) | 2021.04.27 |
[Spring][쇼핑몰 프로젝트][21] 상품정보 수정 구현 - 1 (0) | 2021.04.26 |