장성호's
장성호's blog
장성호's
  • 분류 전체보기
    • 알고리즘
      • 백준
      • 이론
    • WEB
      • Spring 인강
      • 네트워크
    • 개인 프로젝트
      • 쇼핑몰 만들기

블로그 메뉴

  • 홈
  • 깃허브
전체 방문자
오늘
어제
반응형
hELLO · Designed By 정상우.
장성호's

장성호's blog

[Spring] 스프링 공부 #25
WEB/Spring 인강

[Spring] 스프링 공부 #25

2022. 4. 6. 21:30
반응형

 

PRG Post/Redirect/Get

기존 코드

@PostMapping("/add")
public String add(@ModelAttribute Item item) {
    itemRepository.save(item);
    return "basic/item";
}

 

기존 코드의 문제점 : 

이러한 경고 메시지와 함께 새로고침할 경우 데이터가 계속 추가되는 문제 발생

 

 

위 문제를 해결하기 위해서 상품 저장이 성공할 경우, 상품 상세 화면으로 리다이렉트 함으로써 해결할 수 있다.

@PostMapping("/add")
    public String add(@ModelAttribute Item item) {
        itemRepository.save(item);
//        return "basic/item";
        return "redirect:/basic/items/" + item.getId();
    }

 

 

RedirectAttributes

하지만, 위 처럼 + item.getId() 형식을 사용하면 URL 인코딩이 안되기 때문에 위험하다.

@PostMapping("/add")
    public String add(@ModelAttribute Item item, RedirectAttributes redirectAttributes) {
        Item savedItem = itemRepository.save(item);
        redirectAttributes.addAttribute("itemId", savedItem.getId());
        redirectAttributes.addAttribute("status", true);
//        return "basic/item";
        return "redirect:/basic/items/{itemId}";
    }

실행결과 :  http://localhost:8080/basic/items/3?status=true

RedirectAttribute를 사용해서 URL 인코딩을 할 수 있다. 

 

출처

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

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard

 

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의

웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., -

www.inflearn.com

 

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'WEB > Spring 인강' 카테고리의 다른 글

[Spring] 스프링 공부 #27  (0) 2022.04.14
[Spring] 스프링 공부 #26  (0) 2022.04.14
[Spring] 스프링 공부 #24  (0) 2022.04.06
[Spring] 스프링 공부 #23  (0) 2022.04.05
[Spring] 스프링 공부 #22  (0) 2022.04.05
    'WEB/Spring 인강' 카테고리의 다른 글
    • [Spring] 스프링 공부 #27
    • [Spring] 스프링 공부 #26
    • [Spring] 스프링 공부 #24
    • [Spring] 스프링 공부 #23
    장성호's
    장성호's
    장성호's 개발 공부 블로그

    티스토리툴바