먼저 수정할때부터 현재 페이지를 가지고 가야한다
<td><a href="/board/detail.kh?boardNo=${board.boardNo}&page=${currentPage }">${board.boardTitle }</a></td>
@RequestMapping(value = "/board/detail.kh", method = RequestMethod.GET)
public ModelAndView boardDetailView(ModelAndView mv, @RequestParam("boardNo") Integer boardNo
, @RequestParam(value = "page", required = false) Integer page
, HttpSession session) { // 커리스트링으로 앞단에서 넘어왔기때문에 받아줄 객체/ int롤 받으면 null체크 안되서 integer로 받은것임
try {
Board board = bService.printOneByNo(boardNo);
session.setAttribute("boardNo", board.getBoardNo());
// 세션에 boardNo를 저장-> 삭제하기 위해서
mv.addObject("board", board);
mv.addObject("page", page);
a태그 전송할때 값을 보내준다.
page=${currentPage }"
심플하다.
@RequestParam(value = "page", required = false) Integer page
이걸로 받아서
mv.addObject("page", page);
로 수정페이지로 값을 전달한것임.
<a href="#" onclick="boardRemove(${page});">삭제하기</a>
<a href="/home.kh">홈으로</a>
<script>
function boardRemove(page) {
event.preventDefault();// 하이퍼 링크 이동 방지
if(confirm("게시물을 정말 삭제하시겠습니까?")){
location.href="/board/remove.kh?page="+page;
}
}
</script>
상세페이지에 목록 다 하고 마지막 삭제하기 정말할때 페이지 값을 함수로 해서 다시 보내준다.
public String boardRemove(HttpSession session, Model model,
@RequestParam("page") Integer page) {
// 삭제만 하니깐..ModelAndView가아니라 그냥 String 반환에 model연결함
try {
int boardNo = (int) session.getAttribute("boardNo");
int result = bService.removeOnebyNo(boardNo);
if (result > 0) {
session.removeAttribute("boardNo");
// 성공해서 삭제되었으니깐 세션에서 정보를 삭제해야함
}
//model.addAttribute("page", page);
return "redirect:/board/list.kh?page="+page;
} catch (Exception e) {
model.addAttribute("msg",e.toString());
return "common/errorPage";
}
}
@RequestParam("page") Integer page) 함수로 받으니깐 표현이 조매 다름...
삭제 후 다시 mv로 리스트 조회로 보낼때 다시 페이지를 보낸다.
삭제가 되었다......
public ModelAndView boardModify(@ModelAttribute Board board, ModelAndView mv,
@RequestParam(value = "reloadFile", required = false) MultipartFile reloadFile // 위에서 upload였는데 여기선
,@RequestParam("page")Integer page // reloadFile로 변경
, HttpServletRequest request) {
try {
String boardFilename = reloadFile.getOriginalFilename();
if (reloadFile != null && !boardFilename.equals("")) {
// 파일 이 있거나, 파일명이 있을때
// 수정방법 = 1, 대체 2, 삭제 후 저장 ==>삭제후 저장이 오히려 편함
// 파일 경로를 알아야 한다. 리케스트 필요 httpHttpServletRequest request
// 파일 삭제
String root = request.getSession().getServletContext().getRealPath("resources");
String savedPath = root + "\\buploadFiles";
// 파일이름을 갖고 오고자 db로 갈필요는 없음. 이 jsp에 board 자료가 있음
File file = new File(savedPath + "\\" + board.getBoardFileRename());// file.io
if (file.exists()) { // 파일이 정말 있는지 확인
file.delete(); // 파일 지움
}
// 삭제 했으니깐 다시 저장
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String boardFileRename = sdf.format(new Date(System.currentTimeMillis())) + "."
+ boardFilename.substring(boardFilename.lastIndexOf(".") + 1);
// substring 때문에 1을 더한것임
// lastIndexOf(".")은 파일.뒤의 확장자 구하는 것이다.
String boardFilepath = savedPath + "\\" + boardFileRename;
reloadFile.transferTo(new File(boardFilepath));
board.setBoardFilename(boardFilename);
board.setBoardFileRename(boardFileRename);
board.setBoardFilepath(boardFilepath);
}
int result = bService.modifyBoard(board);
mv.setViewName("redirect:/board/list.kh?page="+page);
수정할때는 약간다르다.....
,@RequestParam("page")Integer page
mv.setViewName("redirect:/board/list.kh?page="+page);// 이건 전송방식이 조금 다르지만 응용이다.
<h1 align="center">${board.boardNo }번 게시글 수정하기</h1>
<br><br>
<form action="/board/modify.kh" method="post" enctype="multipart/form-data">
<input type="hidden" name="page" value="${page }">
<input type="hidden" name="boardNo" value="${board.boardNo }">
<input type="hidden" name="boardFilename" value="${board.boardFilename }">
<input type="hidden" name="boardFileRename" value="${board.boardFileRename }">
순서를 바꿔서 기재했으나...
수정페이지에서 현재페이지를 받는 것임.....input으로 전달한다.
<input type="hidden" name="page" value="${page }">
이런식으로 수정과 관련후 List 돌아가는 mv들에게 모두수정을 하면....잘된다.^^
'SPRING' 카테고리의 다른 글
220916 스프링 게시판_댓글 8-2 댓글리스트출력 (0) | 2022.09.16 |
---|---|
220916 스프링 게시판_댓글 8-1 댓글올리기 (1) | 2022.09.16 |
220915 스프링 게시판만들기 7-3 주소api (0) | 2022.09.15 |
220915 스프링 게시판만들기 7-2 페이징:보던 페이지로 화면출력 (0) | 2022.09.15 |
220915 스프링 게시판만들기 7-1 조건검색값null,검색칸에 값남기기 (0) | 2022.09.15 |