먼저 수정할때부터 현재 페이지를 가지고 가야한다

 

<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들에게 모두수정을 하면....잘된다.^^

+ Recent posts