- @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
- View에 Model을 적용 → 동적 웹페이지 생성
- 예) 로그인 성공 시, "로그인된 사용자의 Nickname"을 페이지에 추가
- Template engine 종류: 타임리프(Thymeleaf), Groovy, FreeMarker, Jade, JSP 등
- View에 Model을 적용 → 동적 웹페이지 생성
- Client(브라우저)에게 View(동적 웹 페이지, HTML)를 전달 해줍니다.
- Client 의 요청을 Controller에서 Model 로 처리합니다.
'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 |