- [Springboot] 44. 익명 게시판 만들기2024년 08월 19일
- Song hyun
- 작성자
- 2024.08.19.:16
728x90반응형[Springboot] 44. 익명 게시판 만들기
*Controller 코드
package com.test.board.controller; import java.util.List; import javax.servlet.http.HttpSession; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import com.test.board.Repository.Model.Board; import com.test.board.dto.BoardDTO; import com.test.board.dto.UpdateDTO; import com.test.board.handler.exception.DataDeliveryException; import com.test.board.handler.exception.RedirectException; import com.test.board.handler.exception.UnAuthorizedException; import com.test.board.service.BoardService; import org.springframework.web.bind.annotation.RequestParam; @Controller @RequestMapping("/board") public class BoardController { private final BoardService boardService; private HttpSession httpSession; public BoardController(BoardService boardService) { this.boardService = boardService; } /** * 게시판 리스트 띄우기 * * @param model * @return */ @GetMapping("/main/{currentPage}") public String main(Model model, @PathVariable(name = "currentPage", required = false) int currentPage) { List<Board> boardList = boardService.selectAllBoard(); int totalPages = (int) Math.ceil((double) boardList.size() / 5); // 총 페이지 수 int limit = 5; // 한 페이지 당 게시글 수 int offset; // 오프셋 offset = (currentPage - 1) * limit; List<Board> listForPagination = boardService.selectAllBoardforPagination(limit, offset); // 페이징 처리 model.addAttribute("currentPage", currentPage); model.addAttribute("totalPages", totalPages); model.addAttribute("listForPagination", listForPagination); return "boardPage"; } /** * 게시글 작성 화면 띄우기 * * @return */ @GetMapping("/write-board") public String writeNewBoardPage() { return "writePage"; } /** * 게시글 작성 처리 * * @param dto * @return */ @PostMapping("/write-board") public String writeNewBoardProc(BoardDTO dto) { BoardDTO newBoard = dto; boardService.addNewBoard(dto); return "redirect:/board/main"; } /** * 작성자 인증 페이지 * * @param boardId * @param type * @return */ @GetMapping({ "/check-author/{boardId}" }) public String checkAuthorpage(@PathVariable("boardId") int boardId, @RequestParam("type") String type, Model model) { model.addAttribute("boardId", boardId); model.addAttribute("type", type); return "checkAuthorPage"; } /** * 작성자 인증 처리 후 - 수정/삭제 페이지 이동 처리 * * @param boardId * @param type * @param password * @return */ @PostMapping({ "/check-author/{boardId}" }) public String checkAuthorProc(@PathVariable(name = "boardId") int boardId, @RequestParam(name = "type") String type, @RequestParam(name = "password") int password) { Board checkBoard = boardService.selectBoardByIdAndpassword(boardId, password); // 사용자 인증 처리 if (checkBoard == null) { throw new UnAuthorizedException("잘못된 비밀번호입니다.", HttpStatus.NOT_FOUND); } if (type.equals("update")) { return "/updatePage"; } else if (type.equals("delete")) { return "/deletePage"; } return "/updatePage"; } /** * 게시글 수정 처리 * * @param boardId * @param dto * @return */ @PostMapping("/update-board/{boardId}") public String updateBoardProc(@PathVariable(name = "boardId") int boardId, UpdateDTO dto) { int result = boardService.updateBoard(boardId, dto); return "redirect:/board/main"; } /** * 게시글 삭제 처리 * * @param boardId * @param dto * @return */ @GetMapping("/delete-board/{boardId}") public String deleteBoardProc(@PathVariable(name = "boardId") int boardId, UpdateDTO dto) { int result = boardService.deleteBoard(boardId); if (result == 1) { return "redirect:/board/main"; } return "redirect:/board/main"; } }
https://github.com/Greenery367/anonymBoard728x90반응형'Springboot' 카테고리의 다른 글
[Springboot] 43. OAuth 2.0 (5단계-소셜 로그인 API 연동- 자동 회원가입/로그인 처리) (1) 2024.08.16 [Springboot] 42. OAuth 2.0 (4단계-Kakao Developers 소셜 로그인 사용자 정보 받아오기) (0) 2024.08.16 [Springboot] 41. OAuth 2.0 (3단계-Kakao Developers 소셜 로그인 API 토큰 받기) (0) 2024.08.16 [Springboot] 40. OAuth 2.0 (2단계-Kakao Developers API 응답 코드 받기) (0) 2024.08.14 [Springboot] 39. OAuth 2.0 (1단계-Kakao Developers 사용하기) (0) 2024.08.14 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)