Java 25

Spring Boot - 관리자 페이지 (2)

저번글의 관리자 로그인 및 로그아웃 구현에 이어서 이번 글에서는 회원관리에 대해서 기능을 구현하고, 설명하려고 합니다. 부족해도 좋게 봐주세요 :) adminMain.html에서 작성해 놓은 회원 관리 회원리스트 a th:href="@{/admin-customer-list}">회원리스트a> a링크를 통해서 /admin-customer-list URL로 GET 요청이 전송됩니다. // 회원관리 페이지@GetMapping("/admin-customer-list")public String allCustomerList(HttpSession session, Model model) { Member admin = (Member)session.getAttribute("admin");..

Spring Boot - 관리자 페이지 (1)

관리자 페이지는 회원 관리, 공지사항 작성 및 수정, 질문 관리 등의 기능을 통해 사이트 운영을 효율적으로 관리할 수 있는 역할을 담당합니다. 이번 글에서는 이러한 기능들을 구현하는 과정을 설명하고, 어떤 방식으로 작동하는지를 공유하려고 합니다. 부족하더라도 좋게 봐주세요 :) 1. 관리자 로그인 페이지 (Html) 관리자 로그인 로그인 메인으로 이동 관리자용 ID와 Password를 입력한 후 로그인 버튼onclick="admin_login()"을 클릭하면 admin_login() 함수 호출. 2. admin_login() 함수 작성function admin_login() { if($("#id").val() == "") { swal.fire({ ..

Spring Boot - Q&A 페이지 구현하기 (2)

이번 글에서는 질문 작성에 이어서 작성한 질문의 수정 및 삭제에 대해서 포스팅 하겠습니다.부족하더라도 좋게 봐주세요 :) 1. Html - 수정, 삭제 버튼수정삭제 data-qna_seq=${qna.qna_seq}  : 이 속성은 현재 질문의 고유 시퀀스 번호 (qna.qna_seq)를 저장합니다.data-qna_writer=${qna.member.id} : 질문 작성자의 ID (qna.member.id)를 저장합니다.data-answer_status=${qna.answer_status} : 답변 상태 (qna.answer_status)를 저장합니다.data-qna_viewer=${loginUser.id} : 현재 로그인한 사용자의 ID (loginUser.id)를 저장합니다.  2. JavaScript..

Spring Boot - Q&A 페이지 구현하기 (1)

이번 글에서는 웹 사이트에서 빠질 수 없는 QnA 기능에 대해 다뤄보겠습니다. 일반 회원이 질문을 작성하고, 관리자가 해당 질문에 답변하는 기능을 구현할 예정입니다. 부족한 부분이 있을 수 있지만, 많은 관심과 피드백 부탁드립니다! :) 1. Qna 클래스 만들기 (Qna.java)package com.demo.domain;import java.util.Date;import org.hibernate.annotations.ColumnDefault;import org.hibernate.annotations.DynamicInsert;import org.hibernate.annotations.DynamicUpdate;import jakarta.persistence.Entity;import jakarta.pers..

Spring Boot - 댓글 좋아요 기능 구현하기

앞서 소개한 댓글 CRUD 기능 구현에 이어, 오늘은 댓글 좋아요 기능을 구현하려고 합니다.부족하더라도 좋게 봐주세요 :) + 댓글의 좋아요 기능을 위해 테스트용 댓글 작성1. 클래스 생성package com.demo.domain;import jakarta.persistence.Entity;import jakarta.persistence.GeneratedValue;import jakarta.persistence.GenerationType;import jakarta.persistence.Id;import jakarta.persistence.JoinColumn;import jakarta.persistence.ManyToOne;import lombok.AllArgsConstructor;import lombok..

Spring Boot - 댓글 CRUD기능 구현하기 (3)

이번 글에서는 댓글 삭제 및 댓글 좋아요 기능에 대해 써보려고 합니다..저번 글에서 하려고 했느데 오류가 많아서 수정하다보니 깜빡했어요;;  부족하지만 좋게 봐주세요 :)1. 삭제 버튼 Html댓글삭제data-* 속성은 HTML5에서 표준화된 커스텀 데이터 속성으로, 자바스크립트에서 데이터를 전송하거나 스타일링을 위해 데이터를 HTML 요소에 저장할 때 유용하게 사용됩니다.th:data-reply-seq속성에 reply.replySeq 값이, th:data-reply-member-id 속성에 댓글 작성자 ID인 reply.member.id 값이, th:data-login-user-id속성에 로그인한 사용자 ID인 loginUser.id 값JavaScript에서 버튼을 클릭할 때 이러한 data-* 속성에..

Spring Boot - 댓글 CRUD기능 구현하기 (2)

이번 글에서는 댓글 CRUD기능 중 수정(U)과 삭제(D)에 관한 글을 써보려고 합니다.부족해도 이해하고 봐주세요... :) 1. html에 수정 버튼 만들기 : 댓글수정 좋아요  좋아요 수 :   댓글삭제  댓글수정 data-reply-seq 속성은 각 댓글의 고유 식별자인 replySeq 값을 담습니다.data-reply-member-id 속성은 댓글 작성자의 ID를 담습니다.data-login-user-id 속성은 현재 로그인한 사용자 ID를 담습니다.onclick 속성은 버튼이 클릭되었을 때 실행할 JavaScript 함수(replyEdit)를 지정합니다.replyEdit(this)에서 this는 현재 클릭된 버튼 요소를 가리키며..

Spring Boot - 리뷰 CRUD기능 구현하기 (4)

삭제 버튼 추가 (reviewDetail.html)button class="delete-btn" type="button" onclick="delete_review()">리뷰 삭제button> 클릭 시 호출할 함수 작성review.js > delete_review() 함수 추가 var writer = /*[[${review.member.id}]]*/ ''; var viewer = /*[[${loginUser.id}]]*/ ''; var review_seq = /*[[${review.review_seq}]]*/ 0;function delete_review() { // 작성자와 현재 로그인한 사용자가 동일한지 확인 if (writer === viewer) { swal.fire({ ..

Spring Boot - 리뷰 CRUD기능 구현하기 (3)

리뷰 상세보기 및 수정// 리뷰 상세 화면@GetMapping("/review_detail")public String reviewDetailView(HttpSession session, Model model, @RequestParam("review_seq") int review_seq) throws Exception { Member loginUser = (Member)session.getAttribute("loginUser"); Review review = reviewService.getReviewBySeq(review_seq); if(loginUser != null) { model.addAttribute("loginUser", loginUser); } // 어보드한 이미지 파일 URL 리..