상세 컨텐츠

본문 제목

chap12 - 상품정보(제품번호 채번해오기) - 제품상세보기(좋아요,싫어요)

본문

제품번호 채번해오기

 

[ ProductRegisterAction.java ]

채번 즉, 시퀀스 번호를 가지고 오는 것이다. 제품번호를 하나 따온것이다.

 

채번해 왔으면 insert 를 해준다.

추가되어진 이미지 파일을 넣어주겠다.

[ ProductRegisterAction.java ]

 

 

 

[ ProductRegisterAction.java ]

 

 

마지막으로 제품등록이 되는지 않되는지 확인한다.

 

 

제품이 등록됬는지 확인 해보자

전자제품으로 해두었으니 전자제품에 가서 확인해본다.

또한 오라클에서도 확인을 해보자.

 

 

탐색기에서 파일이 저장되어지는 위치를 가보면

추가파일 까지 모두 정상적으로 올라와 있다.

 

 

 

제품등록은 관리자 계정일 경우에만 하도록 해주어야 한다.

 

 

위와 똑같이 제품을 하나 더올린다. 제품은 의류 이다.(과정 생략)

 

---------------------------------------------------------------------------------------------------------------------------------

 

 

제품상품의 상세 정보를 본다.

 

먼저 상품정보에서 이미지만 아니라 기본적인 정보도 나오게끔 한다.

 

 

현재 이미지만 보인 상태이다. 우리는 이미지 옆에 상품이름까지 보이도록 해보자.

이미지는 현재 Ajax로 보여주고 있기 때문에 Ajax를 보아야 한다.

 

 

 [ mallHome.jsp ]

 

 

 

여기서 정가와 판매가가 있는데 할인률을 알고 싶다.

먼저 ProductVO 로 간다.

 

[ ProductVO.java ]

 

[ MallDisplayJSONAction.java ]

 

 [ mallHome.jsp ]

 

 

 

전자제품을 클릭했을시 똑같이 나오도록 해준다.

 

[ mallByCategory.jsp ]

[ CategoryDisplayJSONAction.java ]

 

 

이미지에 링크를 넣어본다.

 

[ mallHome.jsp ]

 

이미지를 클릭하면 해당 주소로 간다. 

또한 주소로 넘어갈때 pnum 을 가지고 간다. 

pnum 은 제품테이블에서 제품번호를 뜻한다.

 

 

이미지를 클릭했을때 해당제품의 상세정보로 넘어가겠다.

상세정보에서 장바구니 담기 혹은 바로구매하기 또는 좋아요 싫어요 등을 하겠다.

모두 Ajax로 한다.

 

 

[ ProdViewAction.java ]

 

[ prodView.jsp ]

 

이렇게 이름이 잘 나온다.

 

 

주소창에 장난을 쳤을 경우.

추가 이미지가 있을수도 없을수도 있다.

있다라고 했을시~~~

 

추가이미지 파일이름과 이미지가 나오는지 확인해보자.

 

[ prodView.jsp ]

 

 

쇼핑몰홈 에서 추가해준 여름의상을 클릭했을때 아래처럼 잘 나온다.

 

결과가 이렇게 나왔다 화면만 이쁘게 해주면 된다.

교수님 파일을 받아왔다.

 

 

[ prodView.jsp ] -- 참조!!!!

 

 

위에 보이듯 좋아요 싫어요를 눌렀을 경우 숫자가 보일것이다.

또한 한사람이 한번 할수 있도록 하며 좋아요를 눌렀다 싫어요를 눌렀을 경우 좋아요는 숫자가 다시 내려가고 싫어요가 올라갈 것이다.

 

 

좋아요 싫어요 갯수를 알기 위해서는 테이블을 두개만들어야 한다.

좋아요 테이블 1개 싫어요 테이블 1개

 

 

 

좋아요 테이블과 싫어요 테이블을 두개 동시에 보아야 한다.

dual 을 사용해 왔다.

 

[ prodView.jsp ]

 

 

[ LikeAddAction.java ]

 

[ DislikeAddAction.java ]

 

 

 

 

먼저 DB에 들어오는지 먼저 확인해 본다.

Like 버튼을 한번 클릭한후 DB를 본다.

 

똑같은 제품에 다시 싫어요를 눌러 보았다.

그후 like 좋아요 테이블을 확인해 보니

 

 

전에 들어왔던것이 delete 되었다. - 정상

 

다른 아이디로 로그인후 같은 제품에 싫어요를 눌러 본후 DB를 확인해보았다.

그러한후 이전에 싫어요를 누른 아이디로 접속을 한후 같은 상품에 싫어요를 다시 눌러보았다

--> 복합 primary key 이기 때문에 insert 가 되지 않는다.

 

이제 DB를 성공적으로 확인햇으면

 

값을 JSON 형식으로 바꾸어야한다.

 

[ LikeAddAction.java ]

[ DislikeAddAction.java ]

 

[ prodView.jsp ]

현재 위에는 테스트를 해보기 위해 alert를 해본다.

 

 

 

여기서 기존에 좋아요 버튼을 클릭했던 제품에 가서 다시한번 좋아요 버튼을 클릭했을때

이렇게 에러가 뜬다.

 

이클립스를 확인해보면 

Unique key 제약조건에 위배 되었다고 한다.

 

우리는 Exception 처리를 해준다.

 

 

[ LikeAddAction.java ]

 

[ DislikeAddAction.java ]

이제 확인을 해보자.

 

 

 

 

이제 좋아요 에 몇개가 있는지 또 싫어요 가 몇개가 있는지 보여주어야 한다.

또한 로그인을 하지않고 좋아요 또는 싫어요를 눌렀을경우 메세지를 보여준다.

 

로그인을 하지 않은 상태에서 좋아요를 눌러보면

 

위에 처럼 나온다.

 

위 처럼 하는게 아니라 이것 또한 JSON 형식으로 해야 한다.

 

[ LikeAddAction.java ]

 

[ DislikeAddAction.java ]

 

 

 

alert 가 위에보다 더 이쁜것이~ 있다.

 

[ prodView.jsp ]

 

이제 좋아요 와 싫어요 가 몇개있는지 보여지도록 한다.

 

[ prodView.jsp ]

함수를 하나 만든다.

이것 또한 Ajax로 할것이다.

 

 

[ LikeDislikeCountAction.java ]

 

여기서 테이블이 2개에서 알아오기 때문에 HashMap 을 사용해왔고 키값은 string 이고

행은 하나이기 때문에 List<>는 사용하지 않았다.

또한 Integer 는 나오는 값이 한 행에서 number 타입으로 나오기 때문이다.

 

 

 

[ prodView.jsp ]

 

 

관련글 더보기