BoardController
페이지 정보
본문
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";
}
}
- 이전글● 게시물 목록,조회,수정 - 첨부파일 처리 24.07.03
- 다음글board/list.html 24.07.04
댓글목록
등록된 댓글이 없습니다.