개발/스프링(Spring)
(스프링) 게시판 전체 선택 후 삭제 (이전 페이지로 이동)
kakk789
2022. 8. 17. 19:59
ex ) 6페이지에 Record가 하나 존재하는데 해당 Record를 삭제하게 될 경우 5페이지로 이동하게 끔 하기 위한 코드
그림1
- 5페이지에서 게시글 전체 선택 후 삭제 하면 5페이지로 이동
2. 5페이지로 성공적으로 이동 화면
Java 코드
- 전체 레코드(totalRecord)
- 한 페이지에 뿌려줄 pageSIZE (임의이지만 5개로 고정)
- 위에 두 조건이 딱 나누어 떨어질 경우(% 모드 연산)
( == 해당 페이지에 레코드가 모두 삭제되어 없다는 의미)
@RequestMapping(value="/deleteList", method= RequestMethod.POST)
@ResponseBody
public int deleteList(RedirectAttributes redirectAttributes , HttpServletRequest request){
String[] chkVal = request.getParameterValues("chkVal");
int returnValue=0;
for (String b: chkVal) {
personHistoryServImplNew.deleteUserInfo(Integer.parseInt(b));
}
totalRecord = personHistoryServImplNew.userListNewCount(unlockedReqMap); //전체 레코드 개수
//리턴 받은 data(pageNUM)에 따라 새로고침
//만약 6페이지에 리스트가 1개밖에 없었는데 1개를 삭제하면
//5페이지로 이동되게 함
if (pageNUM !=1 && totalRecord % pageSIZE==0){
redirectAttributes.addFlashAttribute("pageNUM", pageNUM-1);
System.out.println("thisOK pageNUM-1 "+ (pageNUM-1));
returnValue = pageNUM-1;
}
else{
redirectAttributes.addFlashAttribute("pageNUM", pageNUM);
System.out.println("thatOK pageNUM "+ pageNUM);
returnValue = pageNUM;
}
return returnValue;
}
Ajax
- core 부분은 Ajax success시 전달받은 pageNUM으로 href 이동
- idx는 해당 체크박스의 속성 값으로 idx가 들어가 있는 상태
$(document).on("click", "#deleteListBtnNew", function(){
let chkVal=[];
$(".checkSingle:checked").each(function(){
chkVal.push($(this).attr('idx'))
})
$.ajax({
url:"/deleteList",
type:'post',
traditional: true,
data:{"chkVal": chkVal},
success:function(data){
//리턴 받은 data(pageNUM)에 따라 새로고침
//만약 6페이지에 리스트가 1개밖에 없었는데 1개를 삭제하면
//5페이지로 이동되게 함
location.href=("/practiceList?pageNUM="+data) ;
},
error:function(request,status,error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
},
complete:function(){
}
})
})
반응형