SpringBoot에서 Thymeleaf를 사용하여 화면 그리기
목적
이전에는 SpringBoot의 @RestController을 사용하여 문자열을 브라우저에서 표시 할 수 있었으므로,
이번에는 @Controller 을 사용하여 HTML 파일을 표시하는 방법을 배우려고합니다.
사전 준비
SpringBoot의 프로젝트가 이미 있다는 것을 전제로 진행하고 있습니다.
프로젝트를 만드는 방법은 Spring Quickstart Guide 이나 이 기사 를 참고해 주시면 감사하겠습니다.
1.Controller를 만들자!
Spring Quickstart Guide가 끝났을 때의 소스 코드는 다음과 같다고 생각합니다.
DemoApplication.javapackage com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
return String.format("Hello %s!", name);
}
}
이번의 구현에 수반해, DemoApplication.java 파일내의 불필요하게 되는 부분을 삭제합니다.
DemoApplication.java의 완성형package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
DemoApplication.java와 동일한 계층 구조에 controller
폴더를 만듭니다.
그리고 그 폴더 안에 HelloController.java
를 작성해 처리를 기술합니다.
HelloController.javapackage com.example.demo.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) {
String message = "Hello World from HelloController!!!";
model.addAttribute("msg", message);
return "hello";
}
}
HelloController 클래스의 어노테이션은 @Controller 입니다.
@Controller 그렇다면 html로 작성된 템플릿 파일을 반환합니다.
return "〇〇"
의 〇〇
의 부분이 html 파일의 이름이 되므로, 나중에 hello.html 를 작성하지 않으면 안 되는 것이 됩니다.
Model은 템플릿에서 사용할 데이터를 설정합니다.model.addAttribute("値の名前", 値)
라는 쓰는 방법으로 문자열이 저장된 message 변수를 템플릿에 전달합니다.
이제 Controller가 완성되었습니다!
2.Thymeleaf를 사용할 수 있도록!
MVC의 View 부분을 작성해 나가는데, 이번에는 Thymeleaf를 사용합니다.
Thymeleaf는 springboot로 처리 할 수있는 템플릿 엔진입니다.
Controller측에서 변수에 격납한 값을 HTML파일로 표시할 수가 있습니다.
일본어로 쓰여진 Thymeleaf 튜토리얼 도 있습니다!
이제 Thymeleaf를 사용할 수 있도록 pom.xml 파일을 편집합니다.
pom.xml<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- ↓↓↓↓↓Thymeleafを使用する為に追加↓↓↓↓↓ -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3. 화면을 그리는 HTML 파일을 만들자!
src/main/resources/templates
안에 hello.html을 만듭니다.
hello.html의 내용은 다음과 같습니다.
HTML 태그에 thymeleaf의 네임 스페이스를 정의하는 것을 잊지 마세요!
hello.html<!DOCTYPE html>
<html lang="ja" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Spring Boot Lesson</title>
</head>
<body>
<h1>ThymeleafでHello World! </h1>
<h1 th:text="${msg}"></h1>
</body>
</html>
두 번째 h1 태그에서 th:text="${msg}"
로 설정하면 컨트롤러에서 건너온 값이 표시됩니다.
4. 실행해 보자!
1~3에서 @Controller 에서 HTML 파일을 그리기 Thymeleaf를 사용하여 Controller에서 정의한 값을 HTML 파일로 그릴 준비를 해 왔습니다.
실행하고 확인합시다.
터미널에서 다음 명령을 입력하여 Enter.
터미널$ ./mvnw spring-boot:run
2초 정도 기다린 후 http://localhost:8080/hello에 액세스하면,
hello.html이 그려지고 Controller에서 정의한 msg도 올바르게 표시됩니다.
끝에
@Controller 을 사용하여 HTML 파일을 표시하는 방법을 배웠습니다.
Thymeleaf를 작성하는 방법은 아직 많기 때문에 다른 기회에 기사를 만들고 싶습니다.
참고 사이트
Spring Boot에서 Thymeleaf 템플릿 사용
htps : // c ぉ 우다아 r. jp/bぉg/? p=799
Tutorial: Using Thymeleaf (ko)
htps //w w. thy 메아아 f. 오 rg/도 c/개별 ls/3.0/우신gthy메아 f_그럼. html # thy 메아 아 f % 3 % 81 % 아 % 7 % B4 % B9 % 4 % b % 8B
Reference
이 문제에 관하여(SpringBoot에서 Thymeleaf를 사용하여 화면 그리기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/morioheisei/items/01a94847d94c1c384b67
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
SpringBoot의 프로젝트가 이미 있다는 것을 전제로 진행하고 있습니다.
프로젝트를 만드는 방법은 Spring Quickstart Guide 이나 이 기사 를 참고해 주시면 감사하겠습니다.
1.Controller를 만들자!
Spring Quickstart Guide가 끝났을 때의 소스 코드는 다음과 같다고 생각합니다.
DemoApplication.javapackage com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
return String.format("Hello %s!", name);
}
}
이번의 구현에 수반해, DemoApplication.java 파일내의 불필요하게 되는 부분을 삭제합니다.
DemoApplication.java의 완성형package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
DemoApplication.java와 동일한 계층 구조에 controller
폴더를 만듭니다.
그리고 그 폴더 안에 HelloController.java
를 작성해 처리를 기술합니다.
HelloController.javapackage com.example.demo.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) {
String message = "Hello World from HelloController!!!";
model.addAttribute("msg", message);
return "hello";
}
}
HelloController 클래스의 어노테이션은 @Controller 입니다.
@Controller 그렇다면 html로 작성된 템플릿 파일을 반환합니다.
return "〇〇"
의 〇〇
의 부분이 html 파일의 이름이 되므로, 나중에 hello.html 를 작성하지 않으면 안 되는 것이 됩니다.
Model은 템플릿에서 사용할 데이터를 설정합니다.model.addAttribute("値の名前", 値)
라는 쓰는 방법으로 문자열이 저장된 message 변수를 템플릿에 전달합니다.
이제 Controller가 완성되었습니다!
2.Thymeleaf를 사용할 수 있도록!
MVC의 View 부분을 작성해 나가는데, 이번에는 Thymeleaf를 사용합니다.
Thymeleaf는 springboot로 처리 할 수있는 템플릿 엔진입니다.
Controller측에서 변수에 격납한 값을 HTML파일로 표시할 수가 있습니다.
일본어로 쓰여진 Thymeleaf 튜토리얼 도 있습니다!
이제 Thymeleaf를 사용할 수 있도록 pom.xml 파일을 편집합니다.
pom.xml<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- ↓↓↓↓↓Thymeleafを使用する為に追加↓↓↓↓↓ -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3. 화면을 그리는 HTML 파일을 만들자!
src/main/resources/templates
안에 hello.html을 만듭니다.
hello.html의 내용은 다음과 같습니다.
HTML 태그에 thymeleaf의 네임 스페이스를 정의하는 것을 잊지 마세요!
hello.html<!DOCTYPE html>
<html lang="ja" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Spring Boot Lesson</title>
</head>
<body>
<h1>ThymeleafでHello World! </h1>
<h1 th:text="${msg}"></h1>
</body>
</html>
두 번째 h1 태그에서 th:text="${msg}"
로 설정하면 컨트롤러에서 건너온 값이 표시됩니다.
4. 실행해 보자!
1~3에서 @Controller 에서 HTML 파일을 그리기 Thymeleaf를 사용하여 Controller에서 정의한 값을 HTML 파일로 그릴 준비를 해 왔습니다.
실행하고 확인합시다.
터미널에서 다음 명령을 입력하여 Enter.
터미널$ ./mvnw spring-boot:run
2초 정도 기다린 후 http://localhost:8080/hello에 액세스하면,
hello.html이 그려지고 Controller에서 정의한 msg도 올바르게 표시됩니다.
끝에
@Controller 을 사용하여 HTML 파일을 표시하는 방법을 배웠습니다.
Thymeleaf를 작성하는 방법은 아직 많기 때문에 다른 기회에 기사를 만들고 싶습니다.
참고 사이트
Spring Boot에서 Thymeleaf 템플릿 사용
htps : // c ぉ 우다아 r. jp/bぉg/? p=799
Tutorial: Using Thymeleaf (ko)
htps //w w. thy 메아아 f. 오 rg/도 c/개별 ls/3.0/우신gthy메아 f_그럼. html # thy 메아 아 f % 3 % 81 % 아 % 7 % B4 % B9 % 4 % b % 8B
Reference
이 문제에 관하여(SpringBoot에서 Thymeleaf를 사용하여 화면 그리기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/morioheisei/items/01a94847d94c1c384b67
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
return String.format("Hello %s!", name);
}
}
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
package com.example.demo.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) {
String message = "Hello World from HelloController!!!";
model.addAttribute("msg", message);
return "hello";
}
}
MVC의 View 부분을 작성해 나가는데, 이번에는 Thymeleaf를 사용합니다.
Thymeleaf는 springboot로 처리 할 수있는 템플릿 엔진입니다.
Controller측에서 변수에 격납한 값을 HTML파일로 표시할 수가 있습니다.
일본어로 쓰여진 Thymeleaf 튜토리얼 도 있습니다!
이제 Thymeleaf를 사용할 수 있도록 pom.xml 파일을 편집합니다.
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- ↓↓↓↓↓Thymeleafを使用する為に追加↓↓↓↓↓ -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3. 화면을 그리는 HTML 파일을 만들자!
src/main/resources/templates
안에 hello.html을 만듭니다.
hello.html의 내용은 다음과 같습니다.
HTML 태그에 thymeleaf의 네임 스페이스를 정의하는 것을 잊지 마세요!
hello.html<!DOCTYPE html>
<html lang="ja" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Spring Boot Lesson</title>
</head>
<body>
<h1>ThymeleafでHello World! </h1>
<h1 th:text="${msg}"></h1>
</body>
</html>
두 번째 h1 태그에서 th:text="${msg}"
로 설정하면 컨트롤러에서 건너온 값이 표시됩니다.
4. 실행해 보자!
1~3에서 @Controller 에서 HTML 파일을 그리기 Thymeleaf를 사용하여 Controller에서 정의한 값을 HTML 파일로 그릴 준비를 해 왔습니다.
실행하고 확인합시다.
터미널에서 다음 명령을 입력하여 Enter.
터미널$ ./mvnw spring-boot:run
2초 정도 기다린 후 http://localhost:8080/hello에 액세스하면,
hello.html이 그려지고 Controller에서 정의한 msg도 올바르게 표시됩니다.
끝에
@Controller 을 사용하여 HTML 파일을 표시하는 방법을 배웠습니다.
Thymeleaf를 작성하는 방법은 아직 많기 때문에 다른 기회에 기사를 만들고 싶습니다.
참고 사이트
Spring Boot에서 Thymeleaf 템플릿 사용
htps : // c ぉ 우다아 r. jp/bぉg/? p=799
Tutorial: Using Thymeleaf (ko)
htps //w w. thy 메아아 f. 오 rg/도 c/개별 ls/3.0/우신gthy메아 f_그럼. html # thy 메아 아 f % 3 % 81 % 아 % 7 % B4 % B9 % 4 % b % 8B
Reference
이 문제에 관하여(SpringBoot에서 Thymeleaf를 사용하여 화면 그리기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/morioheisei/items/01a94847d94c1c384b67
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<!DOCTYPE html>
<html lang="ja" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Spring Boot Lesson</title>
</head>
<body>
<h1>ThymeleafでHello World! </h1>
<h1 th:text="${msg}"></h1>
</body>
</html>
1~3에서 @Controller 에서 HTML 파일을 그리기 Thymeleaf를 사용하여 Controller에서 정의한 값을 HTML 파일로 그릴 준비를 해 왔습니다.
실행하고 확인합시다.
터미널에서 다음 명령을 입력하여 Enter.
터미널
$ ./mvnw spring-boot:run
2초 정도 기다린 후 http://localhost:8080/hello에 액세스하면,
hello.html이 그려지고 Controller에서 정의한 msg도 올바르게 표시됩니다.
끝에
@Controller 을 사용하여 HTML 파일을 표시하는 방법을 배웠습니다.
Thymeleaf를 작성하는 방법은 아직 많기 때문에 다른 기회에 기사를 만들고 싶습니다.
참고 사이트
Spring Boot에서 Thymeleaf 템플릿 사용
htps : // c ぉ 우다아 r. jp/bぉg/? p=799
Tutorial: Using Thymeleaf (ko)
htps //w w. thy 메아아 f. 오 rg/도 c/개별 ls/3.0/우신gthy메아 f_그럼. html # thy 메아 아 f % 3 % 81 % 아 % 7 % B4 % B9 % 4 % b % 8B
Reference
이 문제에 관하여(SpringBoot에서 Thymeleaf를 사용하여 화면 그리기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/morioheisei/items/01a94847d94c1c384b67
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Spring Boot에서 Thymeleaf 템플릿 사용
htps : // c ぉ 우다아 r. jp/bぉg/? p=799
Tutorial: Using Thymeleaf (ko)
htps //w w. thy 메아아 f. 오 rg/도 c/개별 ls/3.0/우신gthy메아 f_그럼. html # thy 메아 아 f % 3 % 81 % 아 % 7 % B4 % B9 % 4 % b % 8B
Reference
이 문제에 관하여(SpringBoot에서 Thymeleaf를 사용하여 화면 그리기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/morioheisei/items/01a94847d94c1c384b67텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)