• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

thymeleaf 에서 스프링 부트3.0 이상일때 request 꺼내기

23.09.11 17:43 작성 23.09.11 17:45 수정 조회수 352

0

 @GetMapping("/basic-objects")
 public String basicObjects(HttpSession session) {
  ...
 }

위 컨트롤러 작성하는 부분입니다.

관련된 html 파일은 basic-objects.html 인데, ${#session} 으로 세션을 꺼내고 ${session} 으로도 세션을 꺼내네요.

컨트롤러에서 파라미터로 호출하면 자동으로 모델에 담아서 뷰단으로 넘겨주기 때문에 기본으로 제공하는 #session 과 파라미터로 호출한 session 둘다 꺼낼 수 있는걸로 보입니다.

그런데 강의문서에 "스프링 부트 3.0 이상이라면 다음과 같이 작성하자." 라고 써있고 컨트롤러에서 HttpServletRequest.. 리퀘스트와 리스폰스 그리고 서블릿 컨테이너를 Model 에 addAttribute 로 넣어 뷰단에 넘겨줍니다.

// 스프링 부트 3.0 이상
@GetMapping("/basic-objects")
public String basicObjects(Model model, HttpServletRequest request,
HttpServletResponse response, HttpSession session) {
 session.setAttribute("sessionData", "Hello Session");
 model.addAttribute("request", request);
 model.addAttribute("response", response);
 model.addAttribute("servletContext", request.getServletContext());
 return "basic/basic-objects";
}

리퀘스트와 리스폰스는 컨트롤러 메서드에서 파라미터로 호출했으니 Model 에 넣어서 넘겨줄 필요 없는거 아닌가요?

답변 1

답변을 작성해보세요.

0

David님의 프로필

David

2023.09.13

안녕하세요. Eungi Kim님, 공식 서포터즈 David입니다.

강의자료 - 1. 타임리프 - 기본 기능 16p를 참고해 주세요:)

감사합니다.