본문 바로가기
JAVA/spring

spring redirect

by 개폰지밥 2019. 7. 4.
반응형

코드로 배우는 스프링 웹 프로젝트 책을 보면서 했음!

새로고침을 해서 악의 적인 사용자가 도배를 하는 것을 막기 위해 리다이렉트를 이용하는 방법

목록 페이지를 보기 위해서 BoardController.java를 아래와 같이 수정합니다.

@RequestMapping(value = "/register", method = RequestMethod.POST)

        public String registPOST(BoardVO board, Model model) throws Exception {

 

               logger.info("regist post ......");

               logger.info(board.toString());

 

               service.regist(board);

 

               model.addAttribute("result", "success");

 

               // return "/board/success";

               return "redirect:/listAll";

        }

 

-      listAll

즉 submit을 누르면 목록 페이지로 이동하게 수정했음!

 

RedirectAttributes를 이용한 숨김 데이터의 전송

Result=SUCCESS 문자열은 지워지지 않고 남기 때문에 페이지를 새로 고침했을 때 계속 남는 문제점이 있습니다.

SpringRedirectAttributes 객체는 리다이렉트 시점에 한 번만 사용되는 데이터를 전송할 수 있는 addFlashAttribute()라는 기능을 지원합니다.

현재 BoardController.java 파일의 registPost()를 아래와 같이 수정합니다.

@RequestMapping(value = "/register", method = RequestMethod.POST)

        public String registPOST(BoardVO board, RedirectAttributes rttr) throws Exception {

 

               logger.info("regist post ......");

               logger.info(board.toString());

 

               service.regist(board);

 

               // model.addAttribute("result", "success");

 

               // return "/board/success";

 

               rttr.addFlashAttribute("msg", "success");

               return "redirect:/listAll";

        }

addFlashAttribute()는 브라우저까지 전송되기는 하지만, URI 상에는 보이지 않는 숨겨진 데이터의 형태로 전달됩니다.

 

결과 페이지인 listAll.jsp에서는 약간의 JavaScript를 사용해서 화면에 결과를 보여주는 용도로 사용할 수 있습니다.

 

orz.zerock.controller.BoardController의 일부

        <script>

               var result = '${msg}';

 

               if (result == 'success') {

                       alert("처리 완료");

               }

        </script>

 

 

반응형

'JAVA > spring' 카테고리의 다른 글

select Implementation  (0) 2019.08.08
spring redirection  (0) 2019.08.07
register(등록), success(등록 성공)  (0) 2019.07.04
spring homapage  (0) 2019.06.14
Spring CreateTest  (0) 2019.06.13

댓글


","addFlashAttribute()","spring redirect","URI 상 숨겨진 데이터 형태로 전달","결과 페이지에서 javascript를 사용해 화면 결과 보여주기","리다이렉트 한번만 데이터 전송","스프링 리다이렉트"]},"kakaoAppKey":"3e6ddd834b023f24221217e370daed18","appUserId":"null"}