스프링 기초(인강 보충)_11

bitna's study note·2022년 7월 18일

스프링

목록 보기
21/54

7월 19일

1.수정과 삭제 마저 처리하기

(1)modify.jsp 수정
이부분 수정해줌
왜?수정할때 pageNum 과 amount를 알아야 목록으로 돌아갈때 내가 보던 페이지로 갈수있음.

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

(2)BoardController 수정
modify 부분과 remove부분 수정
modify 와 remove는 Redirect로 이동하기 때문에 파라미터를 넘겨줄때
addAttribute 속성을 지정하여 넘겨줘야함

package com.keduit.controller;

@Controller //스프링의 Controller빈으로 인식할수 있게함.
@RequiredArgsConstructor //해당 어노테이션은 final로 선언한 변수를 찾아서 주입해줌
@RequestMapping("/board/*")
@Log4j

//아래 모든코드가 테스트코드까지 성공했으면, service에서 Controller 까지 넘어가는 거는 문제없다는게 유추됨
public class BoardController {
	
	private final BoardService service;
	
	
	@PostMapping("/modify")
	public String modify(BoardVO board, 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";
	}
	
	@PostMapping("/remove")
	public String remove(@RequestParam("bno") Long bno, 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";
		
	}


}

2.총 게시물 구하기

(1)BoardMapper 작성하기

package com.keduit.mapper;

public interface BoardMapper {
	
	//나중에 검색할때 조건을 담아야 하므로 Criteria 매개변수로 받음
	int getTotalCount(Criteria cri);
}

(2)BoardMapper.xml 작성하기
sql문중 count()는 전체행수를 나타냄

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  
  <mapper namespace="com.keduit.mapper.BoardMapper">
  	<select id="getTotalCount" resultType="int">
  		select count(bno) from t_board
  	</select>
  	
  </mapper> 

(3)BoardService 작성하기

package com.keduit.service;
 
public interface BoardService {
	
	int getTotal(Criteria cri);
}

(4)BoardServiceImpl 작성하기

package com.keduit.service;

@Service //스프링아 해당클래스는 빈으로 등록해죠
@Log4j
@RequiredArgsConstructor //해당 어노테이션은 final로 선언한 변수를 찾아서 주입해줌
@ToString
public class BoardServiceImpl implements BoardService{
	private final BoardMapper mapper;

	@Override
	public int getTotal(Criteria cri) {
		return mapper.getTotalCount(cri);
	}
}

(5)BoardController 수정

@GetMapping("/list")
	public void list(Criteria cri, Model model) { 
		
		log.info(cri);
		log.info("list..........");
		
		model.addAttribute("list",service.getList(cri));
		model.addAttribute("pageMaker",new PageDTO(cri,service.getTotal(cri) ));
	}
profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글