템플릿 엔진 순위 - tempeullis enjin sun-wi

시작이 반

강의 참고 : www.inflearn.com/roadmaps/373

[초급~중급] 우아한형제들 개발팀장 김영한의 스프링 완전 정복 | 더 나은 학습을 위한 가이드

대세를 따르세요! 자바 스프링 베스트셀러 우형 개발팀장에게 배우는 스프링 완전 정복 🚩 오픈 3개월 만에 수강생 7000+명의 극찬 릴레이 ✨원리와 실무를 한방에, 김영한의 스프링 학습 1O1! 입

www.inflearn.com

템플릿 엔진 순위 - tempeullis enjin sun-wi

정적 컨텐츠

  • html파일을 그대로 서버로 전송하여 데이터 갱신 없이 웹 페이지에 보여진다.
  • 기본적으로 Spring Boot는 클래스 경로 또는 서블릿 컨텍스트의 루트로부터 /static (또는 /public 또는 /resource 또는 /META-INF/resources)라는 디렉토리의 정적 컨텐츠를 제공합니다. Spring MVC의 ResourceHttpRequestHandler를 사용하여 고유한 WebMvcConfigurer를 추가하고 AddResourceHandler 방법을 재정의하여 이러한 동작을 수정할 수 있습니다.
<!DOCTYPE html>
<head>
    <title>static content</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
정적 컨텐츠 입니다.
</body>
</html>
템플릿 엔진 순위 - tempeullis enjin sun-wi
resources/static/hello-static.html
템플릿 엔진 순위 - tempeullis enjin sun-wi
 

1. 스프링은 컨트롤러쪽에서 hello-static.html이 있는지 찾는다.

2. 내부 resources 에 있는 hello-static.html을 찾는다.

컨트롤러가 먼저 우선순위를 갖는다.


MVC와 템플릿 엔진

MVC: Model, View, Controller

View - 화면 출력에 중점

Controller, Model - 비지니스 로직, 내부 처리

Controller

템플릿 엔진 순위 - tempeullis enjin sun-wi
public String helloMvc(@RequestParam("name") String name, Model model){
        model.addAttribute("name", name);
        return "hello-template";
    }

View

템플릿 엔진 순위 - tempeullis enjin sun-wi
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}">hello! empty</p>
</body>
</html>

기존 작성한 hello 아래 hello-mvc 컨트롤러를 만들어준다.

localhost:8080/hello-mvc 이 경로로 들어오면 실행되는 컨트롤러이다.

반환으로 hello-template.html을 보여준다.

템플릿 엔진 순위 - tempeullis enjin sun-wi

localhost:8080/hello-mvc 로 들어왔지만 오류페이지가 뜬다. 이는 Requestparam의 값이 들오오지 않았기 때문

템플릿 엔진 순위 - tempeullis enjin sun-wi

파라미터 정보를 보면( ctrl + p ) required값이 기본적으로 true이기 때문

템플릿 엔진 순위 - tempeullis enjin sun-wi

get방식으로 value값을 넘겨줬더니 정상 작동

required값을 false로 바꾸면 어떻게 될까

템플릿 엔진 순위 - tempeullis enjin sun-wi
템플릿 엔진 순위 - tempeullis enjin sun-wi

null이 출력된다....

템플릿 엔진 순위 - tempeullis enjin sun-wi

이런식인듯

test키에 대한 spring값 을 받는다.

@RequestParam어노테이션을 사용하지 않고도 해봤는데 값이 제대로 나왔다.

검색해본 결과 사용하지 않아도 어느정도는 자동으로 지정해준다고 하지만 명시적으로 지정해주는게 좋다고 한다.

템플릿 엔진 순위 - tempeullis enjin sun-wi

viewResolver - view를 찾고 템플릿 엔진 연결

hello-template(view)을 찾고 템플릿 엔진에 처리를 해달라고 넘김

템플릿 엔진은 렌더링 처리후 변환된 html을 반환