[Spring] 26.SpringProject-검색 기능(3)




검색 기능 - 정보유지



이번 장에서는 페이지 기능에서 한 것처럼 검색을 한 후 글을 읽고, 삭제하고, 수정해도 검색 정보가 유지되게 해보겠습니다!

사실상 페이지 기능에서 미리 다 셋팅해놓았기 때문에 수정사항이 그리 많지 않습니다!

심지어 지금도 글을 조회하고 목록으로 와도 검색정보가 유지됩니다!


image




삭제와 수정 후에만 검색 정보 유지되게 해주면됩니다!


수정 후 검색정보 유지



수정 후에 검색정보가 유지되게 하는 것도 어렵지 않습니다!

BoardController의 updatePOST 메소드만 수정해주면 됩니다!


//BoardController.java


package com.gguri.swp.controller;

...

@Controller
@RequestMapping("/board/*")
public class BoardController {
	private static final Logger logger = LoggerFactory.getLogger(BoardController.class);
	
	@Inject
	private BoardService service;
	
	...
    
	@RequestMapping(value = "/update", method = RequestMethod.POST)
	public String updatePOST(BoardVO board, 
				 Criteria cri,
				 RedirectAttributes rttr) throws Exception{
		logger.info("update POST");
		service.modify(board);
		rttr.addFlashAttribute("result","saveOK");
		rttr.addAttribute("page", cri.getPage());
		rttr.addAttribute("perPageNum", cri.getPerPageNum());
       		//searchType, keyword 추가
		rttr.addAttribute("searchType", cri.getSearchType());
		rttr.addAttribute("keyword", cri.getKeyword());
		rttr.addAttribute("bno", board.getBno());
		
		return "redirect:/board/read";
	}
}




한 번 수정후에도 검색 정보가 제대로 유지되나 확인해볼까요?


image




잘 실행되네요!


삭제 후 검색 정보 유지



삭제 후 검색 정보를 유지하기 위해서도 BoardController의 remove 메소드만 수정해주면 됩니다!


//BoardController.java


package com.gguri.swp.controller;

...

@Controller
@RequestMapping("/board/*")
public class BoardController {
	private static final Logger logger = LoggerFactory.getLogger(BoardController.class);
	
	@Inject
	private BoardService service;
	
	...
    
	@RequestMapping(value = "/remove", method = RequestMethod.GET)
	public String remove(@RequestParam("bno") Integer bno, 
			     Criteria cri,
			     RedirectAttributes rttr) throws Exception{
		logger.info("remove");
		service.remove(bno);
		rttr.addFlashAttribute("result","removeOK");
		rttr.addAttribute("page", cri.getPage());
		rttr.addAttribute("perPageNum", cri.getPerPageNum());
       		//searchType, keyword 추가
		rttr.addAttribute("searchType", cri.getSearchType());
		rttr.addAttribute("keyword", cri.getKeyword());
		return "redirect:/board/listPage";
	}
}




image




삭제 후에도 검색 정보가 제대로 유지되네요!