Spring 10

[스프링] 프로젝트 - 게시판 페이징 처리(댓글 편)

[관련 게시글] 댓글 리스트 출력 댓글 수정하기 댓글 삭제하기 import lombok.Getter; import lombok.Setter; @Getter @Setter public class Paging { private int currentPage = 1; private int rowPage = 10; private int pageBlock = 10; private int start; private int end; private int startPage; private int endPage; private int total; private int totalPage; //생성자 public Paging(int total, String currentPage1) { this.total = total; if..

[스프링] 로그인 후 원래 요청한 페이지로 이동하기-2

[이전 게시글] Interceptor로 로그인 체크하기 로그인 체크 후 요청 페이지로 이동하기 [배경] 인터셉터로 로그인 체크하여 고정된 페이지가 아닌, user가 요청한 페이지로 이동하는 것까지는 좋았으나, 파라미터가 유실되는 문제가 확인되었다. [의도] 파라미터까지 가지고와서 정확한 요청 페이지를 보여주자. [원리] request.getRequestURL()을 통해 URL을 가지고 온 것처럼, 파라미터도 가지고 와야 한다. 이때 사용하는 request 객체는 아래와 같다. request.getQueryString() ✓ 예제 실습 After 로그인 Controller @Override public boolean preHandle(HttpServletRequest request, HttpServletR..

[스프링] 로그인 후 원래 요청한 페이지로 이동하기-1

[배경] 세션에 저장된 id값이 없을 경우, Interceptor를 통해 로그인 폼으로 이동하는 것까지는 좋았으나, 로그인 후 redirect로 설정한 main페이지로 고정된 이동이 마음에 들지 않았다. [의도] 인터셉터를 통해 로그인하고 나면 유저가 원래 요청한 페이지로 이동하게 한다. [원리] FROM과 TO를 이해해야 한다. 어디서 요청을 하고, 어디로 요청을 했는지. 요청한 URL 값을 계속 가지고 다녀야 결국엔 요청 URL을 보여줄 수 있는 것 FROM은 아래의 메서드를 통해 알 수 있다. request.getRequestURL() request.getRequestURI() ✓ 예제 실습 Before 인터셉터 response.sendRedirect로 로그인 폼만 매칭할 경우, 로그인 폼으로 이동..

[스프링] 프로젝트 - 게시판 페이징 처리

import lombok.Getter; import lombok.Setter; @Getter @Setter public class Paging { private int currentPage = 1; private int rowPage = 10; private int pageBlock = 10; private int start; private int end; private int startPage; private int endPage; private int total; private int totalPage; //생성자 public Paging(int total, String currentPage1) { this.total = total; if(currentPage1 != null) { this.curre..

[스프링] 프로젝트 - 게시판 댓글 구현(댓글 수정 편)

해당 게시글의 프로젝트 환경은 링크와 같습니다. [관련 게시글] 댓글 리스트 출력 댓글 삭제하기 댓글 페이징처리 [원리의 이해] 댓글의 수정의 포인트는 아래와 같다. - 해당 행을 선택해야 함 - 선택된 행 중에서 화면상으로 기존 댓글은 숨겨지고, 수정할 댓글창이 보여야 하며, 'DB'에서는 수정 내용이 반영되어야 함 - 해당 data만 업데이트되어야 하기 때문에 비동기 ajax를 사용 [View][HTML] 댓글 삭제에서 추가한 varStatus를 추가 활용 수정버튼을 클릭하면 현재 행번호를 매개변수로 'commentEdit' 함수가 실행 ${list.nickName} | ${list.c_date} 수정 삭제 화면상 보이는 댓글 폼을 아래와 같이 추가 눈속임이라고 볼 수 있는데, 기존에 등록된 댓글과 ..

[스프링] 프로젝트 - 게시판 댓글 구현(댓글 삭제 편)

[관련 게시글] 댓글 리스트 출력 댓글 수정하기 댓글 페이징처리 [원리의 이해] 댓글의 삭제의 포인트는 아래 두 가지이다. - 해당 행을 선택해야 함 - 선택된 행을 'DB'와 '화면상'으로 삭제해야 함 - 삭제 시, 해당 data만 업데이트되어야 하기 때문에 비동기 ajax를 사용 [View][HTML] 지난 번 작성한 코드에 행을 선택하기 위해서 index를 부여해야 함으로 varStatus를 추가 삭제버튼을 클릭하면 현재 행번호를 매개변수로 'commentDeleteCheck' 함수가 실행 ${list.nickName} | ${list.c_date} 수정 삭제 ​ [View][Ajax] 삭제 전, 삭제 여부 확인되면 해당 행의 (id + 행번호의 값)=(댓글번호)을 불러와 DB에서 delete하는 ..

[스프링] 게시판 좋아요(추천) 구현(ID당 한 번만 좋아요하기)

좋아요(추천) 구현 모습 [원리의 이해] 게시물 상세페이지 진입 시 유저의 '좋아요' 여부가 확인되어야 함 화면에서 '좋아요' 부분만 업데이트 되어야 함으로 비동기식 ajax 사용 [View][HTML] - 로그인 유저의 '좋아요' 여부에 따라 '빈 하트(heart.svg)' 또는 '검은 하트(heart-fill.svg)'가 출력되어야 하지만, 기본적으로는 '빈 하트'가 출력되도록 설정 - 게시글의 총 '좋아요' 개수 확인하여 출력 ${totalGood} [View][Ajax] [1] 좋아요(추천) 전체 개수 출력 함수 //좋아요 전체 개수 출력 function totalChange(){ $.ajax({ url :'${pageContext.request.contextPath}/totalGood', typ..