스프륑하는날~

jyp·2023년 1월 18일
0

학원

목록 보기
30/57
post-thumbnail

요청이랑 뷰랑 다르면 redirect

page 값은 모든페이지 이동할때마다 값을 보내줘야해서
request로 보내면 번거롭기 때문에 애초에 시작할때 DTO에 page를 만들어두면 편함
(table에까지 생성 할 필요는 없음)

page값을 bdto에서 받아서 bdto2로 전달해주기

@RequestMapping("/content")
public String content(BoardDto bdto,Model model)
{
	// 할일 : 하나의 레코드를 읽어오기
	BoardDao bdao = sqlSession.getMapper(BoardDao.class);
	BoardDto bdto2 = bdao.content(bdto);
	
    // bdto 안에는 현재 page값을 가지고 있으나 bdto2에는 page 값이 없기 때문에
    
    // 아래처럼 코드를 적어서 전달받은 값을 바꿔서 다시 줄수도있음
	bdto2.setContent(bdto2.getContent().replace("\r\n", "<br>"));
    
	bdto2.setPage(bdto.getPage());
	// 위에서처럼 bdto2.setpage를 통해 bdto page 값을 전달해줘서 받아서 쓰기
    
	model.addAttribute("bdto", bdto2);
	return "/content";
}

rs를 사용하지 않기 때문에 pwd 체크할때 rs.next를 못할때
count(*) 를 sql 실행문에 넣어주면 0,1 값을 받기 때문에 pwd체크때 사용 가능

BoardDaoxml

<select id="pwdCheck" parameterType="kr.co.batis_page.dto.BoardDto" resultType="Integer">
	select count(*) from board where id=#{id} and pwd=#{pwd}
</select>

boolean 사용 방식

<select id="pwdCheck2" parameterType="kr.co.batis_page.dto.BoardDto" resultType="boolean">
	select if(count(*)=1, 'true','false') from board where id=#{id} and pwd=#{pwd}
</select>

BoardController

@RequestMapping("/delete")
public String delete(BoardDto bdto)
{
	BoardDao bdao = sqlSession.getMapper(BoardDao.class);
	int chk = bdao.pwdCheck(bdto);
	// 비번 체크
	if(chk == 1)
	{
		bdao.delete(bdto);

		return "redirect:/list?page="+bdto.getPage();
	}
	else
	{
		return "redirect:/content="+bdto.getId()+"&page="+bdto.getPage();
	}		
}

boolean 사용 방식

@RequestMapping("/delete")
public String delete(BoardDto bdto)
{
	BoardDao bdao = sqlSession.getMapper(BoardDao.class);
	// 비번 체크
	if(bdao.pwdCheck2(bdto);)
	{
		bdao.delete(bdto);

		return "redirect:/list?page="+bdto.getPage();
	}
	else
	{
		return "redirect:/content="+bdto.getId()+"&page="+bdto.getPage();
	}	
}
profile
국비 코딩

0개의 댓글