Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
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
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

Response - static resource, View Template 본문

인프런/[인프런] 스프링 MVC 1

Response - static resource, View Template

Seung__ 2021. 9. 15. 22:03

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


 

GitHub - bsh6463/MVC2

Contribute to bsh6463/MVC2 development by creating an account on GitHub.

github.com

 

Comments