yahayaha

17. 페이징 이벤트 처리 ( 수정 / 삭제 ) 본문

spring/프로젝트

17. 페이징 이벤트 처리 ( 수정 / 삭제 )

yaha 2024. 1. 27. 23:27

수정 후 목록 페이지로 이동하게 하려함.

 

크게 어려운건 없으니 빠르게 진행.

 

수정을 한다는 가정하에 똑같이 pageNum와 amount가 필요함 이걸 작업해 줄거임.

 

modify.jsp에 수정을 좀 해줘야함

<input type="hidden" name="pageNum" value="${cri.pageNum }">
<input type="hidden" name="pageNum" value="${cri.amount }">

눈에 보이지 않는 태그를 만들어줌.

 

수정이나 삭제는 POST방식으로 처리함.

 

수정을 한다하면 PostMapping으로 걸리고, 수정을 하게 되면 pageNum랑 amount값도 전달이 되어야함.

 

그리고 그걸 받으려면 Criteria로 받아야함.

 

@PostMapping("/modify")
    public String modify(BoardVO board, @ModelAttribute("cri") Criteria cri, RedirectAttributes rttr) {
        int count = service.modify(board);

        if(count == 1) {
            rttr.addFlashAttribute("result", "success");
        }

        rttr.addAttribute("pageNum",cri.getPageNum());
        rttr.addAttribute("amount",cri.getAmount());

        return "redirect:/board/list";
}

 

그리고 결과를 한번 확인

 

 

modify를 하고 8페이지에 고정이 되는지 확인.

 

.

삭제도 똑같은 방법으로 진행.

 

@PostMapping("/remove")
public String remove(@RequestParam("bno") Long bno, @ModelAttribute("cri") Criteria cri, RedirectAttributes rttr) {
    int count = service.remove(bno);

    if(count == 1) {
        rttr.addFlashAttribute("result", "success");
    }

    rttr.addAttribute("pageNum",cri.getPageNum());
    rttr.addAttribute("amount",cri.getAmount());

    return "redirect:/board/list";
}

삭제도 확인.

 

 

이제 게시판의 진짜 데이터를 뿌려줘야함.

 

그럼 검색을 제외한 게시판의 기능이 대강 끝나게 됨.

 

먼저 BoardMapper 인터페이스에 추가해줘야함.

public int getTotalCount(Criteria cri);

 

 

그리고 BoardMapper.xml에도 추가 작업.

일단 count 값으로 bno 갯수만 처리해줘도 일단은 충분함.

 

<select id="getTotalCount" resultType="int">
	select count(bno) from tbl_board
</select>

 

그리고 BoardService와 BoardServiceImpl도 메서드 구현 시작.

 

int getTotal(Criteria cri);

@Override
public int getTotal(Criteria cri) {
    // TODO Auto-generated method stub
    return mapper.getTotalCount(cri);
}

 

그리고 123개로 정해둔걸 total 개수로 바꿔주면됨.

 

BoardController에서 list 수정

@GetMapping("/list")
	public void list(Criteria cri, Model model) {
		log.info("list" + cri);
//		model.addAttribute("pageMaker", new PageDTO(cri, 123));
		model.addAttribute("list", service.getList(cri));
		model.addAttribute("pageMaker", new PageDTO(cri, service.getTotal(cri)));
	}

 

톰캣 실행 후 확인 실시.

 

 

데이터가 잘 들어간게 확인.

 

이렇게 검색기능을 제외한 게시판이 끝이남.

----------------------------------------------------------------------------------------

 

글이 두서 없는데 나중에 수정하겠읍니다.