English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SpringBoot Thymeleaf

Thymeleaf는 무엇인가요?

Thymeleaf 는 Apache 라이선스에 따라 개발된 오픈 소스 Java 라이브러리입니다. Apache 라이선스2.0 라이선스를 받습니다. 이는 HTML5/XHTML/XML 템플릿 엔진입니다. 이는 웹(서블릿 기반)과 비웹(오프라인) 환경에 사용됩니다. 서버 측 Java 템플릿엔진. 현대 HTML5 JVM 웹 개발에 대한 완벽한 선택입니다. 이는 Spring Framework와 완전히 통합됩니다.

템플릿 파일에 변환을 적용하여 애플리케이션이 생성한 데이터나 텍스트를 표시합니다. 웹 애플리케이션에서 XHTML을 제공하는 데 적합합니다./HTML5합니다.

Thymeleaf의 목표는 시크형식이 좋은의 템플릿 생성 방식. 이는 XML 태그와 속성을 기반으로 합니다. 이 XML 태그는 DOM(문서 객체 모델)에서 사전 정의된 논리를 실행하며, 이 논리를 템플릿에서 코드로 직접 작성하는 대신 대체합니다. JSP 합니다.

Thymeleaf의 아키텍처는 템플릿에 대한 빠르게 처리캐시解析된 파일에 따라 다릅니다. 그 과정에서 가장 적은 I/O 연산.

우리가 Thymeleaf를 사용하는 이유는 무엇인가요?

JSP는 대체로 HTML과 유사하지만, Thymeleaf와 같은 HTML과 완전히 호환되지 않습니다. Thymeleaf 템플릿 파일은 브라우저에서 정상적으로 열고 표시할 수 있지만, JSP 파일은 그렇지 않습니다.

Thymeleaf는 Spring EL과 같은 변수 표현식($ {...})를 지원하며, 모델 속성과 별표 표현식에서 실행합니다(* {...})는 폼 지원 벤에서 실행되며, 해시 표현식(#{...})은 국제화를 위해 사용되고, 링크 표현식(@{......})은 URL을 재정의합니다.

JSP와 같이, Thymeleaf는 Rich HTML 이메일에 매우 잘 사용될 수 있습니다.

Thymeleaf가 처리할 수 있는 템플릿은 무엇인가요?

Thymeleaf는 여섯 가지类型的 템플릿을 처리할 수 있습니다(또는 템플릿 모드)와 같이:

XML 효과적인 XML XHTML 효과적인 XHTML HTML5 예전 HTML5

예전 HTML을 제외하고5모드 외에도 위의 모든 모드가 참조됩니다 정의된 XML 파일. 이는 독립된 태그, 값이 없는 태그 속성, 또는 인용부호 사이에 적혀있지 않은 등의 기능을 가진 HTML을 처리할 수 있게 합니다5파일.

이러한 특정 모드로 파일을 처리하려면, Thymeleaf가 변환을 수행하여 파일을 형식이 좋은 XML 파일(효과적인 HTML5파일).

주의: Thymeleaf에서는 검증이 XHTML과 XML 템플릿에만 적용됩니다.

Thymeleaf는 이 모드에서 템플릿을 파싱하는 두 가지 방식을 지정하여 자신의 모드를 정의할 수 있습니다. 이렇게 하면 Thymeleaf는 DOM 트리로 모델링할 수 있는 모든 모델을 효과적으로 템플릿으로 처리할 수 있습니다.

표준方言

Thymeleaf는 템플릿 엔진이 DOM 노드의 프레임워크를 정의할 수 있게 해줍니다. 템플릿에서 처리하는 DOM 노드.

DOM 노드에 로직을 적용하는 객체로 불립니다. 로 불립니다.로 불립니다. 方言가 포함된方言은 표준方言

둥급 기능을 활용하면서도 자신의 처리 로직을 정의하고 싶다면, 자신의方言을 정의할 수 있습니다. 자신의方言. 템플릿 엔진에서는 여러方言을 동시에 구성할 수 있습니다.

Thymeleaf 통합 패키지(thymeleaf-spring3그리고 thymeleaf-spring4)은 SpringStandard Dialect 표준方言은 SpringStandard과 거의 같습니다. 그러나 표준方言은 Spring 프레임워크의 일부 기능을 더 잘 활용할 수 있는 작은 변화가 있습니다.

예를 들어, Thymeleaf 표준 OGNL(객체 그래프 탐색 언어) 대신 Spring Expression Language을 사용합니다.

표준方言은 어떤 방식으로든 템플릿을 처리할 수 있습니다. 그러나, 웹을 대상으로 한 템플릿 패턴(HTML5그리고 XHTML)을 지원하고 검증합니다:

XHTML 1.0 전환판 정규 XHMTL 1.0 XHTML 1.0 프레임워크 셋 XHTML 1.1합니다.

표준方言处理器는 HTML을 처리하기 전에 브라우저에서 표시할 수 있는 속성处理器입니다.5/XHTML 템플릿 파일입니다. 이는 다른 속성을 무시했기 때문입니다.

예를 들어, JSP 파일이 태그 라이브러리를 사용할 때, 이 코드는 다음과 같은 브라우저에서 표시되지 않습니다:

<form:inputText name="student.Name" value="${student.name}" />

Thymeleaf 표준方言은 다음과 같은 코드로 동일한 기능을 구현할 수 있습니다.

<input type="text" name="student Name" value="Thomas" th:value="${student.name}" />

위의 코드는 이 안에 정의할 수 있습니다. value 속성( Thomas 브라우저에서 프로토타입을 열 때, 이 값을 표시합니다. 템플릿의 Thymeleaf 처리 과정에서, 이 속성은 ${student.name} 의 값을 대체하는 값으로 사용됩니다.

디자이너와 개발자가 처리할 수 있도록 합니다. 동일한 템플릿 파일을 사용하여静态 프로토타입을 작업 템플릿으로 변환하는 데 필요한 작업을 줄입니다. 이는 자연적인 템플릿합니다.

Thymeleaf 기능

네트워크 환경에서도, 비네트워크 환경에서도 사용할 수 있습니다. HTML을 위해 사용됩니다.5/XML/XHTML의 Java 템플릿 엔진. 높은 성능의 파싱 템플릿 캐시를 통해 I/O를 최소화합니다. 필요하다면 템플릿 엔진 프레임워크로 사용할 수 있습니다. XML, XHTML, HTML과 같은 여러 템플릿 모드를 지원합니다.5합니다. 개발자가 확장하고自定义方言을 생성할 수 있습니다. 기능은 모듈화된 기능 집합으로 구성되어 있습니다. 지원합니다.

Thymeleaf 구현

pom.xml에 추가하여   spring-boot-starter-thymeleaf 의존성을 통해 Thymeleaf 템플릿 엔진 파일을 구현합니다. Spring Boot는 템플릿 엔진을  /resource/templates에서 템플릿 파일을 읽습니다.
<dependency>
<groupId>org.springframework.boot</<groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
 

Spring Boot Thymeleaf 예제

Spring Boot 애플리케이션을 생성하고 Thymeleaf 템플릿을 구현합니다.

}1단계 Spring Initializr를 열어 http://start.spring.io.

}2단계 Spring Boot 버전을 선택합니다.   2.3.0.M1합니다.

}2단계 0. 이는 다음과 같은 출력을 표시합니다.  그룹이름을 제공했습니다. 우리는   com.w3codebox 합니다.

}3단계 0. 이는 다음과 같은 출력을 표시합니다.  아티팩트 ID. 우리는   spring-boot-thymeleaf-view-example.

}5단계 의존성을 추가합니다.   Spring Web 및  Thymeleaf합니다.

}6단계 클릭   Generate (생성) 버튼을 클릭하면, 그룹을   Jar 파일을 다운로드하여 로컬 시스템에 저장합니다.

번7다음 단계: 추출 Jar 파일을 가져와서 STS 작업 공간에 붙여넣습니다.

}8: 导入 STS 프로젝트 폴더.

파일->导入->존재하는 Maven 프로젝트->뒤로 가기->스프링 선택 폴더-boot-thymeleaf-view-example->완료

가져오는 데 시간이 걸립니다.

}9단계 패키지   com.w3codebox 클래스를 생성합니다. 우리는   User 클래스.

이 클래스에서는 두 가지 변수를 정의했습니다.   이름 및   이메일 생성   Getter와 Setter.

User.java

package com.w3package com.w  
public class User 
public static void main(String[] args)  
String name;  
String email;  
public String getName() 
public static void main(String[] args)  
return name;  
SpringApplication.run(SpringBootThymeleafViewExampleApplication.class, args);  
public void setName(String name) 
public static void main(String[] args)  
this.name = name;  
SpringApplication.run(SpringBootThymeleafViewExampleApplication.class, args);  
public String getEmail() 
public static void main(String[] args)  
return email;  
SpringApplication.run(SpringBootThymeleafViewExampleApplication.class, args);  
public void setEmail(String email) 
public static void main(String[] args)  
this.email = email;  
SpringApplication.run(SpringBootThymeleafViewExampleApplication.class, args);  
SpringApplication.run(SpringBootThymeleafViewExampleApplication.class, args);
 

}10단계 컨트롤러 클래스를 생성합니다. 우리는 이름을   DemoController 의 컨트롤러 클래스입니다.

DemoController.java

package com.w3package com.w  
import org.springframework.web.bind.annotation.ModelAttribute;  
import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.RequestMethod;  
import org.springframework.web.servlet.ModelAndView;  
import org.springframework.stereotype.Controller;  
@Controller  
public class DemoController 
public static void main(String[] args)  
@RequestMapping("/")  
public String index()
public static void main(String[] args)  
return"index";  
SpringApplication.run(SpringBootThymeleafViewExampleApplication.class, args);  
@RequestMapping(value="/save", method=RequestMethod.POST)  
public ModelAndView save(@ModelAttribute User user)
public static void main(String[] args)  
ModelAndView modelAndView = new ModelAndView();  
modelAndView.setViewName("user-data");      
modelAndView.addObject("user", user);    
return modelAndView;  
SpringApplication.run(SpringBootThymeleafViewExampleApplication.class, args);  
SpringApplication.run(SpringBootThymeleafViewExampleApplication.class, args);
 

다음 단계에서, 우리는 Thymeleaf 템플릿을 생성할 것입니다.

}11단계 에서  템플릿 내부(src/main/resources/템플릿) 폴더에, 이름을   user-data 의 Thymeleaf 템플릿.

템플릿 폴더를 오른쪽 클릭하세요->새로 만들기->기타->HTML 파일->다음->파일 이름 제공->완료

주의: 템플릿 파일에서 다음 내용을 구현하지 마세요.
<html lang="en" xmlns:th="http://www.thymeleaf.org">
 

user-data.html

<html xmlns:th="https://thymeleaf.org">  
<table>  
<tr>  
<td><h4>사용자 이름: </h4></td>  
<td><h4 th:text="${user.name}"></h4></td>  
</tr>  
<tr>  
<td><h4>이메일 ID: </h4></td>  
<td><h4 th:text="${user.email}"></h4></td>  
</tr>  
</table>  
</html>
 

}12단계 또한, 템플릿 폴더에서   HTML 파일을 생성했습니다. 다음과 같은 이름으로   index 의 HTML 파일입니다.

index.html

<html lang="en">  
<head>  
<title>INDEX 페이지</title>  
</head>  
<body>  
<form action="save" method="post">  
<table>  
<tr>  
<td><label for="user-name">사용자 이름</label></td>  
<td><input type="text" name="name"></input></td>  
 </tr>  
<tr>  
<td><label for="email">Email</label></td>  
<td><input type="text" name="email"></input></td>  
</tr>  
<tr>  
<td></td>  
<td><input type="submit" value="Submit"></input></td>  
</tr>  
</table>  
</form>  
</body>  
</html>
 

}13단계 열기   application.properties 파일을 열고 다음 속성을 추가합니다.

application.properties

spring.thymeleaf.cache=false
spring.thymeleaf.suffix: .html
 

모든 파일, 폴더 및 패키지를 생성한 후, 프로젝트 디렉토리는 다음과 같습니다:

애플리케이션을 실행하겠습니다.

}14단계 열기   SpringBootThymeleafViewExampleApplication.java 파일을 Java 애플리케이션으로 저장합니다.

SpringBootThymeleafViewExampleApplication.java

package com.w3package com.w
import codebox;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication 
public static void main(String[] args)
public class SpringBootThymeleafViewExampleApplication 
public static void main(String[] args)
{
SpringApplication.run(SpringBootThymeleafViewExampleApplication.class, args);
SpringApplication.run(SpringBootThymeleafViewExampleApplication.class, args);
 

}15단계 ://localhost:808지금, 브라우저를 엽니다. URL http:을 호출합니다

0. 이는 다음과 같은 출력을 표시합니다.  제공및  사용자 이름이메일  제출그런 다음

버튼을 클릭하십시오.  제출버튼을 클릭하면 URL이 http:으로 변경됩니다//localhost: 8080/save하고 사용자 데이터를 다음과 같이 표시합니다.

이 장에서는 Thymeleaf 뷰에 대해 논의했습니다. 뷰를 더 매력적이게 만들기 위해 추가할 수 있습니다   CSS 및   JS 이 파일들은 다음 위치에 있어야 합니다   src/main/resources/static 폴더 내.