2018. 9. 23. 15:07ㆍ모두모두 개발자다요/JAVA
게시판 스타일의 CRUD 프로그램을 개발할 때, 보통 리스트 조회(검색) - 상세(단건) 조회 - 등록/수정/삭제의 프로세스를 거치게 개발하기 마련이다.
신경 제대로 안 쓰고 막 개발하다보면 흔히 "등록/수정/삭제" 처리 후 리스트 조회 화면으로 돌아갈 부분에
이전 리스트 화면에서의 (검색) 조건 값에 신경을 안 쓰고 그냥 리스트 1페이지로 꼽아버리는 경우를 많이 봤다.
(나도 그랬었지만.. 최근 주니어 개발자의 코드를 까보고는... 이건 뭐...
그래 (100보 양보해서) 기획자 탓으로 돌리고 그냥 앓느니 죽지~ 하고 고쳤다;;)
리스트 조회 리퀘스트 메소드 개발이 주로 get 방식임을 감안했을 떄 사실 조회 조건이 까다로울 수록 일일히 리다이렉트 URI 를 찢어 붙여 만들어주는 것도 인내심에 한계가 있다.
("?param1="+ vo.getParam1() + "¶m2=" + vo.getParam2() ....)
만약 post 방식이라면 위 방식으로는 답이 될 수 없는 노릇이고..
RedirectAttributes 를 써서 리다이렉트에 속성 값을 전달할 수 있다.
RedirectAttributes.addFlashAttribute("조회조건", 조회조건VO);
@RequestMapping(value="/list.do") public String list(@ModelAttribute(value="searchVO") SearchVO vo) { // 목록 조회(검색) 서비스 list = someService.getList(vo); model.addAttribute("list", list); return "list"; } @RequestMapping(value="/save.do") public String save(@ModelAttribute(value="searchVO") SearchVO vo, RedirectAttributes redirectAttributes ) { // 저장 서비스 someService.save(vo); redirectAttributes.addFlashAttribute("searchVO", vo); return "redirect:/list.do"; }
메소드명에 "Flash" 가 붙는 것을 보니, 뭔가 휘발성을 띄는 메소드임에 틀림없다.
(알아본 바.. 실제 구현된 내용을 보니 일시적으로 세션에 담았다 소멸하는 방식으로 만들어졌다고...;;)
자, 이를 잘 교묘하게 응용함으로써, 앞으로는 테스트 제대로 안해보고 "게시판 다짰어요~" 라고 땡보짓하는 덜렁이 주니어 개발자들에게 빼박 맨붕의 챈스를 가져다 줄 수 있게 되었다.!!
'모두모두 개발자다요 > JAVA' 카테고리의 다른 글
이클립스 톰캣 구동 오류 : Invalid byte 1 of 1-byte UTF-8 sequence (0) | 2019.07.02 |
---|---|
리스트 (또는 배열) 순서 섞기 (shuffle) (0) | 2018.03.27 |
jQuery.ajax() 크로스도메인(crossdomain) 허용 설정 in java web application (0) | 2017.09.18 |
이클립스 Search 결과 파일 새 창으로 오픈 설정 (0) | 2017.06.27 |
maven spring-boot run (port 옵션) (0) | 2017.03.30 |