Spring Boot之使用模板thymeleaf和freemarker

使用thymeleaf步驟:

(1) 在pom.xml中引入thymeleaf;

(2) 如何關閉thymeleaf緩存

(3)編寫模板文件.html

Spring Boot默認就是使用thymeleaf模板引擎的,所以只需要在pom.xml加入依賴即可:

<dependency>

         <groupId>org.springframework.boot</groupId>

         <artifactId>spring-boot-starter-thymeleaf</artifactId>

</dependency>

Thymeleaf緩存在開發過程中,肯定是不行的,那麼就要在開發的時候把緩存關閉,只需要在application.properties進行配置即可:

########################################################

###THYMELEAF (ThymeleafAutoConfiguration)

########################################################

#spring.thymeleaf.prefix=classpath:/templates/

#spring.thymeleaf.suffix=.html

#spring.thymeleaf.mode=HTML5

#spring.thymeleaf.encoding=UTF-8

# ;charset=<encoding> is added

#spring.thymeleaf.content-type=text/html

# set to false for hot refresh

spring.thymeleaf.cache=false

編寫模板文件src/main/resouces/templates/helloHtml.html

注意,spring boot 默認模板文件放置在 src/main/resouces下的templates中,自動掃描,如放在其他地方需要進行其他配置,在此略過

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
      xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
    <head>
        <title>Hello World!</title>
    </head>
    <body>
        <h1 th:inline="text">Hello.v.2</h1>
        <p th:text="${hello}"></p>
    </body>
</html>

編寫訪問路徑  com.mxh.web.controller.TemplateController

package com.mxh.web.controller;

import java.util.Map;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
 * 模板測試.
 * @author Administrator
 */
@Controller
public class TemplateController {
	/**
     * 返回html模板.
     */
	@RequestMapping("/helloHtml")
	public String helloHtml(Map<String,Object> map){
		map.put("hello", "a html test");
        return "/helloHtml";
    }
}

啓動應用,輸入地址:http://127.0.0.1:8080/helloHtml 會輸出:

使用freemarker步驟一樣,就不贅述了。

 在pom.xml加入freemarker的依賴:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

剩下的編碼部分都是一樣的,說下application.properties文件:

########################################################
###FREEMARKER (FreeMarkerAutoConfiguration)
########################################################
spring.freemarker.allow-request-override=false
spring.freemarker.cache=true
spring.freemarker.check-template-location=true
spring.freemarker.charset=UTF-8
spring.freemarker.content-type=text/html
spring.freemarker.expose-request-attributes=false
spring.freemarker.expose-session-attributes=false
spring.freemarker.expose-spring-macro-helpers=false
#spring.freemarker.prefix=
#spring.freemarker.request-context-attribute=
#spring.freemarker.settings.*=
#spring.freemarker.suffix=.ftl
#spring.freemarker.template-loader-path=classpath:/templates/#comma-separatedlist
#spring.freemarker.view-names= #whitelistofviewnamesthatcanberesolved

 

 com.mxh.web.controller.TemplateController中

/**
	 * 返回ftl模板.
	 */
	@RequestMapping("/helloFtl")
	public String helloFtl(Map<String,Object> map){
		map.put("hello", "a ftl test");
		return "/helloFtl";
	}

src/main/resouces/templates/helloFtl.ftl

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
      xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
    <head>
        <title>Hello World!</title>
    </head>
    <body>
        <h1>Hello.v.2</h1>
        <p>${hello}</p>
    </body>
</html>

訪問地址:http://127.0.0.1:8080/helloFtl

可以看到

 

從這裏也可以看出,thymeleaf和freemarker是可以共存的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章