ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #RedirectAttributes로 화면에 일회성 msg 전달
    SPRING-BOOT 2021. 5. 7. 17:20

    session 만료 기능 개발 중 한가지 문제에 직면하였다.

    session을 만료하고 만료msg를 전달하던 기능을 구현하였는데 get방식으로 redirect기능을 구현하여 새로고침시 계속 msg가 표출되는 문제였다.

     

    이 문제를 해결하기위해 검색하던도중 RedirectAttributes라는 것을 알게 되었고 이기능을 사용하여 아래 처럼 문제를 해결하였다.

    	/**
    	 * redirect 세션 만료 MSG 전달 
    	 */	
    	@RequestMapping("/sessionExpired")
        	public String sessionExpiredView(RedirectAttributes rttr) {
              rttr.addFlashAttribute("systemMsg", "세션이 만료되었습니다.");
              return "redirect:/";
            }
    	
        
        
            /**
    	 * loginView view
    	 */	
    	@RequestMapping("/")
            public ModelAndView loginView(HttpServletRequest request, @RequestParam Map<String, Object> param) {
                ModelAndView mav = new ModelAndView("login/login");
                String sendPath = "";
                HttpSession httpSession = request.getSession(false);
                if(httpSession != null) {
                    String adminId = (String) httpSession.getAttribute("admin_id");
                    if(!StringUtil.isNullOrBlank(adminId)) { //세션 있음
                        sendPath = "redirect:/companyView.do";
                        mav.setViewName(sendPath);
                    }
                }
    
                String msgCode = request.getParameter("msgCd");
                if(!StringUtil.isNullOrBlank(msgCode)) {
                    System.out.println("loginView : " + msgCode);
                    if("duplicate".equals(msgCode)) {
                        mav.addObject("msg", "동일한 아이디로 로그인되어 자동 로그아웃 됩니다.");
                    }
                }
    
                return mav;
            }

     

     

    RedirectAttributes에 대해 알아보자

    · addFlashAttribute()

    - url뒤에 parameter를 추가하지 않아도됨.

    - 리다이렉트 직전 플래시에 저장하는 메소드다.

    - 리다이렉트 이후에는 소멸한다.

     

     

    댓글

Designed by Tistory.