BoardController > SPRING_DATA_JPA

본문 바로가기
사이트 내 전체검색

SPRING_DATA_JPA

BoardController

페이지 정보

profile_image
작성자 관리자
댓글 0건 조회 91회 작성일 24-07-04 09:33

본문

package web.controller;


import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.validation.BindingResult;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.PostMapping;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.servlet.mvc.support.RedirectAttributes;


import jakarta.validation.Valid;

import lombok.RequiredArgsConstructor;

import lombok.extern.log4j.Log4j2;

import web.dto.BoardDTO;

import web.dto.BoardListAllDTO;

import web.dto.PageRequestDTO;

import web.dto.PageResponseDTO;

import web.service.BoardService;


@Controller

@Log4j2

@RequestMapping("/board/")

@RequiredArgsConstructor

public class BoardController {


private final BoardService boardService;


@GetMapping("list")

public void getList(Model model, PageRequestDTO pageRequestDTO) {

log.info("list ..............");


//PageResponseDTO<BoardDTO> responseDTO = boardService.list(pageRequestDTO);

//PageResponseDTO<BoardListReplyCountDTO> responseDTO = boardService.listWithReplyCount(pageRequestDTO);

PageResponseDTO<BoardListAllDTO> responseDTO = boardService.listWithAll(pageRequestDTO);

log.info(responseDTO);


model.addAttribute("result", responseDTO);

}


@GetMapping("register")

public void registerGET() {

log.info("registerGET ..............");

}


@PostMapping("register")

public String registerPost(@Valid BoardDTO boardDTO, BindingResult bindingResult, RedirectAttributes rttr) {

//@Valid BoardDTO boardDTO에서 @Valid 하는 역할은 유효성 검사이다.


log.info("registerPost ..............");


if (bindingResult.hasErrors()) {

log.info("에러 ~~~~~~~~~~~~~~~~~");


rttr.addFlashAttribute("errors", bindingResult.getAllErrors());


return "redirect:/board/register"; // 유효성 검사 실패 시 등록 폼으로 리디렉션

    }


log.info(boardDTO);


// 유효성 검사 통과 후 BoardDTO 저장

Long bno = boardService.register(boardDTO);


rttr.addFlashAttribute("bno", bno);


return "redirect:/board/list"; // 등록 성공 시 게시판 목록으로 리디렉션

}


@GetMapping("read")

public void readGET(BoardDTO boardDTO, Model model, PageRequestDTO pageRequestDTO) {

log.info("read GET ..............");


boardService.readOnePlus(boardDTO.getBno()); //조회수 + 1

boardDTO = boardService.readOne(boardDTO.getBno());


model.addAttribute("changeLine", '\n'); //개행처리

// thymeleaf에서는 '' 와 'n'를 따로 인식해서 변수로 전달처리


model.addAttribute("dto", boardDTO);

}


@GetMapping("modify")

public void modifyGET(BoardDTO boardDTO, Model model, PageRequestDTO pageRequestDTO) {

log.info("modify GET ..............");


boardDTO = boardService.readOne(boardDTO.getBno());


model.addAttribute("dto", boardDTO);

}


@PostMapping("modify")

public String modifyPost(BoardDTO boardDTO, RedirectAttributes rttr, PageRequestDTO pageRequestDTO) {

log.info("modifyPost ..............");


boardService.modify(boardDTO);


return "redirect:/board/read?bno="+boardDTO.getBno()+"&"+pageRequestDTO.getLink();

}


@GetMapping("remove")

public String removeGET(BoardDTO boardDTO) {

log.info("removeGET ..............");


boardService.remove(boardDTO.getBno());


return "redirect:/board/list";

}

}


댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

공지사항
자유게시판
질문답변
1:1문의

 

별명 : 터푸가위
주소 : 부산시 동래구 명장로20번길 90
대표 : 박규태
메일 : dancepkt@******.com

접속자집계

오늘
113
어제
210
최대
10,760
전체
268,115
Copyright © dancePKT . All rights reserved.