Welcome Page 만들기
- 스프링 부트가 제공하는 welcome page 기능으로 밑에 설명한 디렉토리에 index.html으로 만들 수 있다.
- Web 을 만드는데 있어서 가능한 기능들이 너무 많기 때문에 공식문서를 통해 해당 기능을 찾을 수 있는 능력을 기르는 것이 중요함 [https://spring.io/projects/spring-boot#learn]
디렉토리 src/main/resource/static 안에 index.html 을 만들어준다.
<!DOCTYPE HTML>
<html>
<head>
<title>Hello</title>
<meta http-equiv="Content-Type" content = "text/html; charset=UTF-8" />
</head>
<body>
Hello
<a href="/hello">hello</a>
</body>
</html>
이 코드를 index.html 안에 작성
thymeleaf 템플릿
- 동적인 웹페이지를 보여주기 위해서 JSP, thymeleaf등을 사용한다.
장점
- thyeleaf는 html5를 완벽하게 지원
- 파일을 html 로 바꾸어도 th: 로 시작하는 thyeleaf문법을 무시해버리기때문에 인식 가능
실습
위 사진과 같이
1. controller라는 package를 src/main/java/[프로젝트명] 안에 만들어주기
2. 해당 폴더 안에 HelloController 라는 java파일 만들어주기
package com.example.hellospring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model){
model.addAttribute("data", "hello!!");
return "hello";
}
}
3. src/main/resource/template 안에 hello.html 파일 만들기
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Hello</title>
<meta http-equiv="Content-Type" content = "text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'안녕하세요. ' + ${data}">안녕하세요. 손님</p>
</body>
</html>
4. 저장 후 빌드를 하면 localhost:8080/hello를 접속
- 해당 hello!!는 controller에 있는 data 에 hello!! 값을 넣어준것
동작원리
1. 웹 브라우저에서 localhost:8080/hello를 요청 [GetMapping, GET 요청]
2. 내장 톰켓에서 스프링에게 물어봄 (localhost:8080/hello 있어?)
3. HelloController에서 GetMapping 한 ("hello") 와 매치가 되서 코드를 수행
3-1. return hello; 인 코드를 수행하면서 template에 있는 hello.html 을 찾아서 랜더링
4. Thymeleaf 템플릿이 hello.html 파일을 처리 함 (ViewResolver)
스프링 부트 템플릿엔진 기본 view매핑
* `resourses/templates/ [viewName] .html
빌드 하는 방법
-터미널에서 빌드하고자 하는 해당 파일의 디렉토리로 이동
파일 빌드
./gradlew build
빌드가 완료 되면 build파일로 이동
cd build
buld 파일안에 libs 디렉토리로 이동
cd libs
ls
파일을 찾으면
java -jar hello-sping-0.0.1-SNAPSHOT.jar
해당 명령을 실행하면 intellj에서 빌드했던것과 같은 결과를 얻을 수 있음
해당 빌드한 파일을 지우고 싶다면
./gradlew clean
'Spring' 카테고리의 다른 글
4장 스프링 빈과 의존관계 (0) | 2023.08.25 |
---|---|
3장 회원관리 예제 (0) | 2023.08.23 |
제 2장 정적 컨텐츠, MVC, API (0) | 2023.08.21 |
1장-2. Spring 라이브러리, Dependencies (0) | 2023.08.18 |
Mac M1 Spring 시작하기 + 스프링 입문 [프로젝트 생성] (0) | 2023.08.17 |