인프런 커뮤니티 질문&답변

olive3three님의 프로필 이미지

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

PRG Post/Redirect/Get

PRG addFlashAttribute

작성

·

102

·

수정됨

0

@GetMapping("/join")
public String addAdminForm(@ModelAttribute("form") AddAdminForm form) {
        return "admin/admins/join";
}

@PostMapping("/join")
public String join(@Valid @ModelAttribute("form") AddAdminForm form, BindingResult bindingResult, RedirectAttributes redirectAttributes) {

    //회원가입 로직
    Integer adminId = adminService.join(form);
     redirectAttributes.addFlashAttribute("adminId", adminId);
      return "redirect:/admin/admins/join/complete";
}

@GetMapping("/join/complete")
 public String joinComplete(@ModelAttribute(name = "adminId") Integer adminId, Model model) {
    NewMemberInfo newAdminInfo = adminService.getNewAdminInfo(adminId);
    model.addAttribute("admin", newAdminInfo);
    return "admin/admins/join_complete";
}

안녕하세요 회원가입이 완료되면 redirect 시켜서 회원가입 완료페이지로 이동시켰습니다. 이때 url을 /join/complete로 하기위해 addFlashAttribute로 adminId를 전달했습니다. 이후 회원가입 완료 페이지에서 로그인 하러 이동버튼을 눌러 로그인페이지로 이동한뒤 뒤로가기로 /join/complete에 다시 들어오게 되면 전달되는 adminId가 없어서 오류가 발생합니다.

addFlashAttribute외에 다른 방법으로 adminId를 전달할수있나요?

답변 1

0

안녕하세요. olive3three님, 공식 서포터즈 y2gcoder입니다.

상태를 저장한다는 것에만 집중하면 session 을 사용할 수도 있을 것 같습니다. 저는 아마 addFlashAttribute를 사용하지 못하는 상황이라면 cookie의 사용도 고려해볼 것 같습니다 🙂

감사합니다.