반응형
1. '좋아요'나 '하트' 등은 글을 읽는 페이지에서 구축하는 게 좋겠다고 생각해서,
조회 상세 링크 페이지에서 일단 시작한다. view.jsp파일에 수정과 삭제가 있는 div태그에 간단히 추가.
<a href="/board/heart?idx=${view.idx}">좋아요</a>
<p>좋아요 ${view.hcount}</p>
* heart라는 url요청을 사용. view모델 객체의 hcount 사용해서 즉각적으로 데이터를 보여주기 위함.
2. 삭제 기능처럼 클릭하면 바로 적용되니까, 따로 heart 뷰 파일은 패스하고 컨트롤러~
BoardController에 삭제기능 비슷하게 베끼면 된다.
//좋아요
@RequestMapping(value = "/heart", method = RequestMethod.GET)
public String getHeart(@RequestParam("idx") int idx) throws Exception {
service.heart(idx);
return "redirect:/board/view?idx="+idx;
}
* /heart 요청은 컨트롤러로 처리하기 위해.
여기서도 마찬가지로 게시물idx로 구분하여 좋아요 컬럼 데이터만 건드리면 된다.
리턴받는 부분은 그 페이지 그대로 남아 있을 꺼니까.
컨트롤러 다 돌고나면, 그 페이지 그대로 남아있으면, 좋아요 수만 바뀔 것이다.
3. 그럼 이제 매퍼.boardMapper파일에 좋아요 카운트로 사용할 쿼리문 추가.
<!-- 좋아요 -->
<update id="heart" parameterType="int" >
update board
set
hcount = hcount+1
where idx= #{idx}
</update>
* update 쿼리문을 사용. 파라미터는 idx의 int형으로 전달받음.
sql문의 int타입 증가 문법 사용. ++ 이런거는 sql문 아님.
4. 그 다음 DAO와 Service 파일에 추가
BoardDAO와 BoardService 파일에
// 좋아요
public void heart(int idx) throws Exception;
}
BoardDAOImpl 파일에는 아래 코드 추가
// 좋아요
@Override
public void heart(int idx) throws Exception {
sql.update(namespace + ".heart", idx);
}
BoardServiceImpl 파일에는 아래 코드 추가
//좋아요
@Override
public void heart(int idx) throws Exception {
dao.heart(idx);
}
* 간단히 끝냈다. 사실 디자인적으로 좋아요는 html링크로 하지 않고, 자바스크립트로 건드려주면 된다.
기능만 구현하는 거니까 일단 패스.
확인. 나이스.
728x90
'Programming > 스프링(spring) - Enterprise' 카테고리의 다른 글
스프링(spring)/ 회원 시스템 구축 2(로그인 페이지) (0) | 2023.08.01 |
---|---|
스프링(spring)/ 회원 시스템 구축 1(회원가입 페이지) (0) | 2023.08.01 |
스프링(spring)/ 게시판 구축 4(검색 기능) (0) | 2023.07.20 |
스프링(spring)/ 게시판 구축 3(게시물 수정 및 삭제) (0) | 2023.07.20 |
스프링(spring)/ 게시판 구축 2(게시물 작성 및 상세 페이지) (0) | 2023.07.20 |