스프링/0. 입문, 전체방향

5강 템플릿 엔진

sdafdq 2023. 7. 6. 21:23

G:\spring\hello-spring\src\main\resources\templates\hello-template.html

에 넣는 html로써,

템플릿이란

템플릿 프로세서를 사용하여 웹 템플릿을 결합하여 완성된 웹페이지.

라고 하는데 서버가 뭔가 html을 뭔가 바꾸어서 보내준다고 하니 spring에서 서버와 연동해서 뭔가 html을 바꾼다는 그런 뜻인거 같다.

 

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
  <p th:text="'hello '  + ${name}">hello! empty</p>
</body>
</html>
<p th:text="'hello ' + ${name}">hello! empty</p>

여기 이 부분에서 hello! empty가

name을 받을 경우 

'hello ' + ${name}"

로 대체된다.

 

 

일단, 기본적으로 Spring은 MVC 방식을 씀.

 

    @GetMapping("hello-mvc")
    public String helloMvc(@RequestParam("name") String name, Model model){
        model.addAttribute("name", name);
        return "hello-template";
    }

위는 컨트롤러 파일 내에 만든 코드임.

name으로 받은 걸 String name에 넣고, 그걸 코드처럼 모델에 넣고, return 시키면 th= ${name} 저 부분에서 실행

저렇게 return "hello-template";

하면 hello-template.html 대상으로 실행.

 

localhost:8080/hello-mvc

하면 위 함수 실행.

근데, 저기서 RequestParm이 있음.

이거는 저거 하면서 값을 넘겨줘야 하는 이야기.

일단 지금은 GET 방식 같음.

 

localhost:8080/hello-mvc?name=spring!

이런 식으로 넘김.

이렇게 안넘기면 에러남.

 

    @GetMapping("hello-mvc")
    public String helloMvc(@RequestParam(value = "name", required = false) String name, Model model){
        model.addAttribute("name", name);
        return "hello-template";
    }

이렇게, required를 false로 하면 안넘겨도 됨.

해보니까 그냥 hello  null로 뜸

 

여튼 넘기면, 앞의 html name에 받아서 실행.

 

 

이렇게, html을 변환 후 웹브라우저에 넘겨줌

 

'스프링 > 0. 입문, 전체방향' 카테고리의 다른 글

7강 회원관리 예제  (0) 2023.07.06
6강 API 방식으로 데이터 주기  (0) 2023.07.06
4. 웹개발 기초  (0) 2023.07.06
3. 빌드  (0) 2023.07.06
2장 thymeleaf  (0) 2023.07.05