inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[개념은 호옹~, 실습 빡] 스프링 부트, 입문!

16 데이터 삭제하기(흑역사는 지울게요..!)

16강 질문입니다.

203

이원석

작성한 질문수 7

0

강사님 안녕하세요.

16강 질문 있습니다.

 

delete 이후에 alert 메세지를 띄우기 위해서 RedirectAttributes rttr을 파라미터로 하나 선언하고

rttr.addFlashAttribute("msg",  "삭제되었습니다.") 이후에 view에서 {{msg}} 받도록 되어 있는데

그냥 Model model 을 파라미터로 두고 

model.addAttribute("msg", "삭제되었습니다.")

view {{msg}} 

이렇게 받으면 안되나요 ? 어차피 view에서는 전달받은 객체의 변수를 가져만 오는 거고 addFlashAttribute setAttribute가 클래스 내부적으로는 map 으로 구성되어 있겠지만 둘 다 string으로 되어 있으니 다른 점 있을까 싶어서요.

 

그리고 예전 스프링에서 보면 view에 해당하는 jsp 파일들은 실제로 서블릿으로 동작하고, requestDispatcher -> forward를 통해 넘겨진 request, response 객체들이 동작되어서 jsp 페이지에서 변수처리가 가능한데 이것도 같은 동작방식이라 이해하면 될까요 ? 
그렇다면 예를 들어

public String delete(RedirectsAttribute rtts, Model model){

rtts.addFlashAttribute("msg", "삭제되었습니다.");

model.addAttribute("msg", "삭제되었습니다(모델)");

return "test";

}

하였을 때 test 뷰에서 {{msg}} 이렇게 받으면 결과가 어떻게 나오나요 ? 
이 때의 동작방식은 어떻게 되는지 설명 부탁드립니다.

 

감사합니다.

spring-boot

답변 1

0

홍팍

리다이렉트 시,
모델 객체에 등록된 값은 사라지게 됩니다.
이는 HTTP의 Stateless 특성 때문인데요

이로 인해,
model.addAttribute()로 등록된 값을
리다이렉트된 페이지에서 사용할 수 없습니다.

예시로 든 "test.mustache" 페이지에서는
리다이렉트 방식이 아니므로
모델에 등록된 값 "삭제되었습니다.(모델)"이 보여지게 됩니다.

(리다이렉트가 아닌
forward로 호출된 경우엔
model의 값을 그대로 사용할 수 있습니다.)

 

PS.

삭제 후, 리다이렉트하는 것이
포워딩하는 것 보다 일반적인 방식(선호방식)입니다.

질문과 함께 예시로 든 코드를
직접 수행해보세요.

23강 댓글 생성 메소드 오류

0

94

2

15.14 강 에러 문제 질문

0

63

1

21강 자율 과제중 update

0

137

2

28강 DB mysql연동 관련 질문

0

300

1

27강 관련 질문

0

210

1

22강 관련질문

0

315

2

21강 create테스트 질문

0

362

1

9강 질문 있습니다

0

294

1

로그창에 내용이 출력이 안됩니다.

0

372

1

index()함수 질문있습니다.

0

371

3

수정완료를 눌렀을때 첫번째 데이터는 전송이 안되고 다시 수정완료 버튼을 눌러야 데이터가 전송 됩니다.

0

486

1

강의와 책 질문

0

443

1

20강 질문있습니다.

0

402

1

20강에서 Article create 부분

0

294

1

16강 질문있습니다.

0

268

1

mustache의 article의 정의가 뭔가요?

0

345

2

17강 Unique index or primary key violation

1

1840

2

8강 에러 질문있습니다.

0

274

1

15강 DB연결

0

344

1

추상클래스를 사용 할 수있을까요?

0

248

1

22강 과제 질문

0

378

1

22강 질문입니다.

0

371

1

19강 create POST 500 에러

0

460

1

19강 JSON create 메서드 질문이여!!

1

544

1