[Spring] 26.SpringProject-검색 기능(3)
검색 기능 - 정보유지
이번 장에서는 페이지 기능에서 한 것처럼 검색을 한 후 글을 읽고, 삭제하고, 수정해도 검색 정보가 유지되게 해보겠습니다!
사실상 페이지 기능에서 미리 다 셋팅해놓았기 때문에 수정사항이 그리 많지 않습니다!
심지어 지금도 글을 조회하고 목록으로 와도 검색정보가 유지됩니다!
삭제와 수정 후에만 검색 정보 유지되게 해주면됩니다!
수정 후 검색정보 유지
수정 후에 검색정보가 유지되게 하는 것도 어렵지 않습니다!
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";
}
}
한 번 수정후에도 검색 정보가 제대로 유지되나 확인해볼까요?
잘 실행되네요!
삭제 후 검색 정보 유지
삭제 후 검색 정보를 유지하기 위해서도 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";
}
}