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.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);
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","modify"})
public void readGET(BoardDTO boardDTO, Model model, PageRequestDTO pageRequestDTO) {
log.info("read , modify GET ..............");
boardDTO = boardService.readOne(boardDTO.getBno());
model.addAttribute("changeLine", '\n'); //개행처리
// thymeleaf에서는 '' 와 'n'를 따로 인식해서 변수로 전달처리
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.06.19
- 다음글board/modify.html 24.06.19
댓글목록
등록된 댓글이 없습니다.