Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- http
- Spring Boot
- pointcut
- 알고리즘
- Proxy
- Android
- Greedy
- AOP
- 김영한
- JDBC
- 스프링
- 자바
- Servlet
- java
- 백준
- QueryDSL
- 인프런
- db
- 스프링 핵심 기능
- springdatajpa
- jpa
- Exception
- 스프링 핵심 원리
- 그리디
- spring
- kotlin
- Thymeleaf
- SpringBoot
- JPQL
- transaction
Archives
- Today
- Total
개발자되기 프로젝트
Response - static resource, View Template 본문
1. 서버에서 reponse data를 만드는 3가지 방법
- 정적 resource
- HTML, CSS, js
- View Template 사용
- 웹 브라우져에 동적인 HTML 사용할 경우 view template 사용
- HTTP 메시지
- HTTP API를 제공하는 경우, HTML이 아니라 데이터 전달을 해야함.
- HTTP Message Body에 JSON형식으로 데이터 넣어서 보냄.
2. 정적 resource
- 정적 리소스 : 해당 파일을 변경없이 그대로 서비스 하는 것을 말함.
- SpringBoot는 src/main/resources 하위의 다음 directory에 있는 static resource를 제공함.
- /static
- /public
- /resources
- /META-INF/resources
- src/main/resources 는 리소스를 보관하는 곳. class path의 시작 경로임.
- 따라서 다음 directory에 resource를 넣어두면 springBoot가 정적 리소스로 서비스 제공.
- 정적 리소스 경로
- src/main/resources/static
- 예를 들어 다음과 같은 경로에 파일이 있으면?
- src/main/resources/static/basic/hello-form.html
- 웹 브라우져에서 다음과 같이 실행 가능.
- http://localhost:8080/basic/hello-form.html
3. View Template
- 뷰 템플릿을 거져서 HTML이 생성되고, 뷰가 응답을 만들어서 전달함.
- Vew Template 경로
- src/main/resources/templates
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p th:text="${data}">empty</p>
</body>
</html>
4. Controller - ModelAndView 반환
@Controller
public class ResponseViewController {
@RequestMapping("/response-view-v1")
public ModelAndView responseViewV1(){
ModelAndView mv = new ModelAndView("response/hello")
.addObject("data", "hello!");
return mv;
}
}
4.1 결과
- 랜더링 되면서 <p th:text="${data}">empty</p> 부분이 <p>hello!</p> 로 변경됨.
5. Controller - String 반환
- @Controller가 String을 반환하면 String과 일치하는 View 찾아감.
@Controller
public class ResponseViewController {
@RequestMapping("/response-view-v2")
public String responseViewV2(Model model){
model.addAttribute("data", "hello!!");
return "response/hello";
}
}
5.1 결과
6. Thymeleaf 스프링 부트 설정
- 라이브러리 추가
`implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'`
- 기본 설정값
- application.properties
-
spring.thymeleaf.prefix=classpath:/templates/ spring.thymeleaf.suffix=.html
- 원하면 변경 가능.
7. GitHub : 210915 Response, static Resource, viewTemplate
'인프런 > [인프런] 스프링 MVC 1' 카테고리의 다른 글
HTTP 메시지 컨버터 (0) | 2021.09.15 |
---|---|
HTTP response - HTTP API, 메시지 바디에 직접 입력 (0) | 2021.09.15 |
HTTP 요청 메시지 - JSON (0) | 2021.09.14 |
HTTP 요청 메시지 - 단순 텍스트 (0) | 2021.09.14 |
HTTP 요청 파라미터 - @ModelAttribute (0) | 2021.09.14 |
Comments