Spring/팀스파르타

6. Controller - 정적, 동적 페이지 처리

열심히 해 2024. 10. 26. 10:08

 

 

1~4번, 정적 페이지

  • @Controller는 해당 클래스가 Controller의 역할을 수행할 수 있도록 등록해줄 수 있습니다.

 

위 그림의 번호와 맵핑하여 설명하겠습니다.

 

1. Controller를 거치지 않고 바로 요청: SpringBoot 서버에 html 파일을 바로 요청하면 해당 html 파일을 static 폴더에서 찾아서 반환해 줍니다. 

 

 

 

2. thymeleaf 주석 처리: Controller를 통해서 반환하는 것을 테스트 하려면,  implementation 'org.springframework.boot:spring-boot-starter-thymeleaf’ 해당 dependency를 주석 처리해야 테스트가 가능합니다.

  • thymeleaf 는 동적 페이지 처리를 위한 템플릿 엔진입니다. 추가하면 자동으로 Controller에서 html 파일 찾는 경로를/resources/templates 로 설정합니다.

 

3. Redirect: 템플릿 엔진을 적용한 상태에서 static 폴더의 html 파일을 Controller를 통해서 처리하고 싶다면 이렇게 "redirect:/hello.html" redirect 요청을 문자열로 반환하면 http://localhost:8080/hello.html 요청이 재수행되면서 static 폴더의 파일을 반환할 수 있습니다.

 

 

 

4. templates 폴더 내 정적 페이지 접근,  Template engine 에 View 전달:

 

타임리프 default 설정

  • prefix: classpath:/templates/
  • suffix: .html

/resources/templates/hello.html

 

 

동적 페이지

 

5. templates 폴더 내 동적 페이지 접근 

 

  • 동적 페이지 처리 과정
    • Client 의 요청을 Controller에서 Model 로 처리합니다.
      • DB 조회가 필요하다면 DB 작업 후 처리한 데이터를 Model에 저장합니다.
    • Template engine(Thymeleaf) 에게 View, Model 전달합니다.
      • View: 동적 HTML 파일
      • Model: View 에 적용할 정보들
    • Template engine
      • ViewModel을 적용 → 동적 웹페이지 생성
        • 예) 로그인 성공 시, "로그인된 사용자의 Nickname"을 페이지에 추가
        • Template engine 종류: 타임리프(Thymeleaf), Groovy, FreeMarker, Jade, JSP 등
    • Client(브라우저)에게 View(동적 웹 페이지, HTML)를 전달 해줍니다.

'Spring > 팀스파르타' 카테고리의 다른 글

8. Jackson이란 무엇일까?  (0) 2024.10.26
7. 데이터를 Client에 반환하는 방법  (0) 2024.10.26
5. Spring MVC란 무엇일까?  (0) 2024.10.25
4. Lombok과 application.properties  (2) 2024.10.21
3. HTTP란 무엇일까?  (2) 2024.10.21