Spring 게시판 게시글 추천 기능 구현 (내 프로젝트에 적용)
Back-End/Spring 2019. 8. 21. 15:51게시글을 추천할 수 있는 버튼을 만들고 자신의 글이 아닌 글에만 추천을 할 수 있게끔 구현
("추천" 버튼이 자신의 글이 아닌경우에만 출력되게 함)
나중에 코드를 추가해서 하루에 한번씩만 추천할 수 있도록 수정할 예정
지금은 테스트용도라 추천을 계속 할 수 있음
memberboardview.jsp (게시글 세부내용 관련 페이지) 중 일부
1 2 3 4 5 6 7 8 9 | <!-- 로그인이 되어있고, 본인 글이 아닐경우에만 추천할 수 있도록 버튼을 출력 --> <c:if test = "${sessionScope.user_id != null and sessionScope.user_id != dto.user_id or sessionScope.navername != null and sessionScope.navername != dto.user_id or sessionScope.kakaonickname != null and sessionScope.kakaonickname != dto.user_id or sessionScope.facebookname != null and sessionScope.facebookname != dto.user_id}"> <button type = "button" id = "btnRecommend">추천하기</button> </c:if> | cs |
1 2 3 4 5 6 7 8 9 10 | //추천하기 버튼 $("#btnRecommend").click(function(){ if(confirm("해당 글을 추천하시겠습니까?")){ document.form1.action="recommend.do"; document.form1.submit(); alert("해당 글을 추천하였습니다.") } }); | cs |
MemberBoardController.java (게시글 관련 컨트롤러) 중 일부
1 2 3 4 5 6 7 8 | //게시물 추천 관련 메소드 @RequestMapping("/board/recommend.do") public String recommend (@RequestParam int member_bno) throws Exception { memberboardservice.recommend(member_bno); return "forward:/board/list.do"; //페이지값을 그대로 넘겨받기위해서 포워딩을 사용해 컨트롤러로 리턴시킨다. } | cs |
MemberBoardService.java (게시글 관련 서비스 인터페이스) 중 일부
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | package com.example.hansub_project.service.board; import java.util.List; import java.util.Map; import javax.servlet.http.HttpSession; import com.example.hansub_project.model.board.dto.MemberBoardDTO; public interface MemberBoardService { public void recommend(int member_bno) throws Exception; //게시글 추천관련 } | cs |
MemberBoardServiceImpl.java (게시글 관련 서비스 인터페이스 구현 클래스) 중 일부
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 32 33 | package com.example.hansub_project.service.board; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.inject.Inject; import javax.servlet.http.HttpSession; import org.springframework.stereotype.Service; import com.example.hansub_project.model.board.dao.MemberBoardDAO; import com.example.hansub_project.model.board.dto.MemberBoardDTO; @Service //서비스 빈으로 설정함 public class MemberBoardServiceImpl implements MemberBoardService { @Inject //dao를 호출하기 때문에 의존성을 주입한다. MemberBoardDAO memberboarddao; //게시글 추천관련 메소드 구현 @Override public void recommend(int member_bno) throws Exception { memberboarddao.recommend(member_bno); } } | cs |
MemberBoardDAO.java (게시글 관련 DAO 인터페이스) 중 일부
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | package com.example.hansub_project.model.board.dao; import java.util.List; import com.example.hansub_project.model.board.dto.MemberBoardDTO; //DAO 클래스 public interface MemberBoardDAO { public void recommend(int member_bno) throws Exception; //추천하기 메소드 } | cs |
MemberBoardDAOImpl.java (게시글 관련 DAO 인터페이스 구현 클래스) 중 일부
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 32 33 34 | package com.example.hansub_project.model.board.dao; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.inject.Inject; import org.apache.ibatis.session.SqlSession; import org.springframework.stereotype.Repository; import com.example.hansub_project.model.board.dto.MemberBoardDTO; import com.example.hansub_project.model.member.dao.MemberDAO; @Repository //dao 선언 public class MemberBoardDAOImpl implements MemberBoardDAO { @Inject //db에 접속하기 위해 의존관계를 주입 SqlSession sqlSession; //추천수 증가처리 메소드 @Override public void recommend(int member_bno) throws Exception { sqlSession.update("memberboard.recommend", member_bno); } } | cs |
boardMapper.xml (게시글 관련 mapper) 중 일부
추천 버튼을 한번 누를때마다 추천수가 1씩 증가함
1 2 3 4 5 6 7 8 | <!-- 게시글 추천 관련 쿼리 --> <update id = "recommend"> update member_board set recommend = recommend+1 where member_bno = #{member_bno} </update> | cs |
'Back-End > Spring' 카테고리의 다른 글
Spring 관리자 로그인, 회원 강제 탈퇴 기능 구현 (내 프로젝트에 적용) (2) | 2019.08.22 |
---|---|
스프링 에러 - url로 자료 전송시 발생 (HTTP Status 500 - The server encountered an unexpected condition that prevented it from fulfilling the request.)) (0) | 2019.08.21 |
Spring 게시판 댓글 관련 기능 구현 - 댓글 작성, 수정, 삭제 (내 프로젝트에 적용) (0) | 2019.08.21 |
JSTL - 조건문 처리 (0) | 2019.08.16 |
ajax로 데이터 넘기기 (0) | 2019.08.14 |