수업정리 쿠팡#9

최동민·2022년 7월 11일
0

Spring 수업정리

목록 보기
41/47

장바구니처리 방법에는 로컬 저장소가 있다.
브라우저 저장소에 저장되는 것. js를 사용하는 것.
pc 방에서 로그인 하고 상품을 장바구니에 담았을 때, 그 컴퓨터에 그 저장소에 담을 내용을 담는 것이기에, 집에 돌아와서 로그인해보면 장바구니가 비어있다. 따라서 잘 쓰지 않는다.

장바구니는 상품과 유저 중 어느 것과 더 밀접할까?
그것을 논하기가 어려운 구석이 있다.
그래서 따로 스키마를 하나 만든다.

누가? 어느상품을? 몇개나 담았는가?

CartEntity

ShoppingController

절대 유저이메일을 requestParam으로 받으면 안된다.
보안이 취약해짐.

AddResult

ShoppingController

메서드와 매핑 이름 변경

AddVo

ShoppingController

IShoppingMapper
장바구니 넣기를 클릭하였을 때, 해당 상품의 데이터가 해당 유저에게 전달된다.

xml

ShoppingService

ShoppingController

detail.html 장바구니 부분
id="quantityInput"
id="productIndexInput"
id="cartButton"

detail.js 만들고

detail.html에 js 연결

detail.js

로그인 하지 않은 상태는

로그인 하였을 때에는

테이블에도 잘 추가되어진 것이 확인.

ShoppingController get메서드 만들자

해쉬맵은 키와 값 쌍으로 이루어진 것들의 나열인데,
키가 겹치면 안된다.
하지만 Pair는 두 타입의 쌍이다. 여러개가 아닌 단 하나.
Pair라는 변수는 CartEntity, ProductEntity 이 두개가 값인 것이다. 그리고 이걸 List로 만든다.
tuple개념을 도입.
getleft는 CartEntity, getright는 ProductEntity

IShoppingMapper

xml

ShoppingService
해당 이메일을 가진 유저가 장바구니에 담은 상품의 인덱스와 그 개수를 나타낸다.

ShoppingController

Pair말고 Triple도 있다. 세개 사용.
Triple : 한 객체가 다른 타입의 값을 가지게 하고 싶을 때 사용

ProductService 의존성을 추가해준다.

ProductService
해당 인덱스의 상품을 가져오기 위함. 기존에 만들어두었던 xml 사용.

ShoppingController

Immutable : 변할 수 없는. (이게 붙은 객체는 보통 final이다.)

cart.html

이제 장바구니를 들어가보면 썸네일 이미지가 불러와진다.

ShoppingController 에서 total값 만들어주기
장바구니에 담긴 상품의 총 금액

값을 전부 받아온다.

ShoppingController

profile
코드를 두드리면 문이 열린다

0개의 댓글