SpringBoot入門——模板引擎的應用

SpringBoot入門——模板引擎的應用

總結而已,不喜勿噴~html

        模板引擎(這裏特指用於Web開發的模板引擎)是爲了使用戶界面與業務數據(內容)分離而產生的,它能夠生成特定格式的文檔,用於網站的模板引擎就會生成一個標準的HTML文檔。java

        模板引擎能夠讓(網站)程序實現界面與數據分離,業務代碼與邏輯代碼的分離,這就大大提高了開發效率,良好的設計也使得代碼重用變得更加容易。web

 

一、引用thymeleaf

(性能稍差,不看性能狀況下可用)spring

thymeleaf具體用法請看:apache

http://www.cnblogs.com/hjwublog/p/5051732.html#_label3緩存

(1)、配置pom.xml

<!-- 引用thymeleaf -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

(2)、配置application.properties

# 是否啓用thymeleaf模板解析
spring.thymeleaf.enabled=true
# 是否開啓模板緩存(建議:開發環境下設置爲false,生產環境設置爲true)
spring.thymeleaf.cache=false
# 檢查本地是否存在對應模板
spring.thymeleaf.check-template-location=true
# 模板的內容類型設置,默認爲text/html
spring.thymeleaf.content-type=text/html
# 模板的編碼設置,默認UTF-8
spring.thymeleaf.encoding=UTF-8
# 設置能夠被解析的視圖,以逗號,分隔
#spring.thymeleaf.view-names=
# 排除不須要被解析視圖,以逗號,分隔
#spring.thymeleaf.excluded-view-names=
# 模板模式設置,默認爲HTML5
#spring.thymeleaf.mode=HTML5
# 前綴設置,SpringBoot默認模板放置在classpath:/template/目錄下
spring.thymeleaf.prefix=classpath:/templates/
# 後綴設置,默認爲.html
spring.thymeleaf.suffix=.html
# 模板在模板鏈中被解析的順序
#spring.thymeleaf.template-resolver-order=

(3)、建立hello.html

在src/main/resources中建立templates文件夾,而後在該文件夾下建立hello.htmltomcat

<!DOCTYPE html>
<html>
<head>
<!-- 此處meta要閉合 -->
<meta charset="UTF-8"/>
<title>Hello world</title>
</head>
<body>
	<p th:text="'Hello!' + ${name}" ></p>
</body>
</html>

在thymeleaf,若是遇到標籤沒有閉合,可能會報異常springboot

(4)、編寫Controller類

package com.springboot.controller;

import java.util.Map;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class TemplateController {

	 // 映射地址是:/templates/hello
	 // 返回html模板
	@RequestMapping("/hello")
	public String hello(Map<String,Object> map){
		map.put("name", "TestName");
		return "hello";
	}

}

(5)、測試

輸入地址: http://localhost:8080/hello 測試是否成功session

 

二、引用freemarker

freemarker具體用法請看mvc

http://blog.csdn.net/tang9140/article/details/39695653

(1)、配置pom.xml

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

(2)、配置application.properties

#Freemark模板引擎
# 是否使用freemarker模板
spring.freemarker.enabled=true
# 是否容許重複請求
spring.freemarker.allow-request-override=false
# 是否緩存
spring.freemarker.cache=false
# 檢查模板位置是否存在
spring.freemarker.check-template-location=true
# 設置編碼格式
spring.freemarker.charset=UTF-8
# 模板的內容類型設置
spring.freemarker.content-type=text/html
# 前綴設置 默認爲 ""
spring.freemarker.prefix=
# 後綴設置 默認爲 .ftl
spring.freemarker.suffix=.ftl
# 在合併以前設置是否應該將全部請求屬性添加到模型中
spring.freemarker.expose-request-attributes=false
# 在合併以前設置是否應該將全部HttpSession屬性添加到模型中
spring.freemarker.expose-session-attributes=false
# 是否設置公開使用在springMacroRequestContext下的宏設置
spring.freemarker.expose-spring-macro-helpers=false
# 在構建URL時附加到視圖名稱的後綴。
spring.freemarker.template-loader-path=classpath:/templates/

(3)、建立hello.ftl文件

建立一個後綴名爲ftl的文件,文件書寫格式按照html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>Hello world</title>
</head>
<body>
     <span>名字:${user}</span>
</body>
</html>

(4)、編寫Controller類

package com.springboot.controller;

import java.util.Map;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;


@Controller
public class TemplateController {
	/**
	 * 映射地址是:/templates/helloFtl
	 * 返回ftl模板
	 */
	@RequestMapping("/hello")
	public String hello(Map<String,Object> map){
		map.put("name", "TestName");
		return "hello";
	}
}

(5)、測試

輸入地址: http://localhost:8080/hello 測試是否成功

 

三、引用jsp

(1)、配置pom.xml

<!-- 對JSP的解析支持 -->
<dependency>
	<groupId>org.apache.tomcat.embed</groupId>
	<artifactId>tomcat-embed-jasper</artifactId>
	<scope>provided</scope>
</dependency>
<!-- 對JSTL的支持 -->
<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>jstl</artifactId>
</dependency>

(2)、配置application.properties

# 頁面默認前綴目錄
spring.mvc.view.prefix=/WEB-INF/
# 響應頁面默認後綴
spring.mvc.view.suffix=.jsp

(3)、建立hello.jsp文件

建立hello.jsp放入src/main/webapp/WEB-INF目錄下

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test JSP</title>
</head>
<body>
	<span>JSP名字:${name}</span>
</html>

(4)、編寫Controller類

package com.springboot.controller;

import java.util.Map;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;


@Controller
public class TemplateController {

    @RequestMapping("/hello")
    public String hello(Map<String,Object> map){
        map.put("name", "TestName");
        return "hello";
    }

}

(5)、測試

輸入地址: http://localhost:8080/hello 測試是否成功

相關文章
相關標籤/搜索