SpringMVC: Controller 점프 및 리디렉션 고려 사항

6508 단어 SpringBoot

Contrller에서 Controller를 건너뛰는 두 가지 방법


1. 점프
이점:
  • 모델 설정 값 보존
  • HttpSession 값 유지
  • 매개 변수 직접 수신(이 규칙은 모델 매개 변수에 적용되지 않음)
  • 모델 대상 설정의 값은 공유된 것으로 여러 모델 대상 설정이 서로 다른 키가 모두 효력이 발생한다.같은 키로 여러 번 설정되면 마지막 설정만 인정합니다.

  • 케이스
    //  /registration
    @RequestMapping("/login")
    public String registration(String name, String password, Model model){
        System.out.println(name);//  registration name password
        System.out.println(password);
        System.out.println(model);// model !!! !!
        model.addAttribute("msg2","success2");// msg msg2 
        // model.addAttribute("msg","success2");// msg 
        return "login";
    }
    @RequestMapping("/registration")
        public String login(String name, String password, Model model, HttpSession httpSession){
            model.addAttribute("msg","success");
            httpSession.setAttribute("sessionAtt","sessionValue");
            return "forward:/login";
    }
    

    단순화
    @RequestMapping("/registration")
        public String login(){
            return "forward:/login";
    }
    @RequestMapping("/login")
        public String login(){
            return "login";
    }
    

    2. 리디렉션
    나쁜 점: HttpSession만 보존하고, 매개 변수, 모델 등은null
    @RequestMapping("/registration")
        public String login(){
            return "redirect:/login";
    }
    @RequestMapping("/login")
        public String login(){
            return "login";
    }
    

    좋은 웹페이지 즐겨찾기