最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot整合Thymeleaf與FreeMarker視圖層技術(shù)

 更新時(shí)間:2022年08月13日 11:28:27   作者:一只小熊貓呀  
在目前的企業(yè)級(jí)應(yīng)用開(kāi)發(fā)中,前后端分離是趨勢(shì),但是視圖層技術(shù)還占有一席之地。Spring Boot 對(duì)視圖層技術(shù)提供了很好的支持,福安防推薦使用的模板引擎是Thymeleaf,不過(guò)想FreeMarker也支持,JSP技術(shù)在這里并不推薦使用

整合Thymeleaf

Thymeleaf是新一代Java模板引擎,類似于Velocity、FreeMarker等傳統(tǒng)Java模板引擎。與傳統(tǒng)Java模板引擎不同的是,Thymeleaf支持HTML原型,既可以讓前端工程師在瀏覽器中直接打開(kāi)查看樣式,也可以讓后端工程師結(jié)合真實(shí)數(shù)據(jù)查看顯示效果。同事,Spring Boot提供了Thymeleaf自動(dòng)化配置解決方案,因此在Spring Boot中使用Thymeleaf 非常方便。Spring Boot整合Thymeleaf 主要可通過(guò)如下步驟

1. 創(chuàng)建工程添加依賴

新建一個(gè)Spring Boot工程,然后添加spring-boot-starter-web 和spring-boot-starter-thymeleaf 依賴

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--    整合Thymeleaf    -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

2. 配置Thymeleaf

Spring Boot為T(mén)hymeleaf提供了自動(dòng)化配置類ThymeleafAutoConfiguration,相關(guān)的配置屬性在ThymeleafProperties 類中,ThymeleafProperties類部分源碼如下:

@ConfigurationProperties(prefix = "spring.thymeleaf")
public class ThymeleafProperties {
	private static final Charset DEFAULT_ENCODING = StandardCharsets.UTF_8;
	public static final String DEFAULT_PREFIX = "classpath:/templates/";
	public static final String DEFAULT_SUFFIX = ".html";
}

由此配置可以看到,默認(rèn)的模板位置在classpath:/templates/,默認(rèn)的模板后綴名為.html。如果使用IDEA創(chuàng)建Spring Boot 項(xiàng)目,templates文件夾默認(rèn)會(huì)創(chuàng)建。如需對(duì)默認(rèn)的Thymeleaf 配置參數(shù)進(jìn)行自定義配置,可以在application.properties 中進(jìn)行配置,部分常見(jiàn)配置如下:

#是否開(kāi)啟緩存,開(kāi)發(fā)時(shí)可設(shè)置為false,默認(rèn)為true
spring.thymeleaf.cache=false
#檢查模版是否存在,默認(rèn)為true
spring.thymeleaf.check-template=true
#檢查模版位置是否存在,默認(rèn)為true
spring.thymeleaf.check-template-location=true
#模版文件編碼
spring.thymeleaf.encoding=UTF-8
#模版文件位置
spring.thymeleaf.prefix=classpath:/templates/
#Content-Type配置
spring.thymeleaf.servlet.content-type=text/html
#模版文件后綴
spring.thymeleaf.suffix=.html

3. 配置控制器

創(chuàng)建Book實(shí)體類,然后在Controller中返回ModelAndView,如下:

public class Book {
    private int id;
    private String name;
    private String author;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }
}
@RestController
public class BookController {
    @GetMapping(value = "/books")
    public ModelAndView books(){
        List<Book> books = new ArrayList<>();
        Book b1 = new Book();
        b1.setId(1);
        b1.setAuthor("唐家三少");
        b1.setName("斗羅大陸Ⅰ");
        Book b2 = new Book();
        b2.setId(2);
        b2.setAuthor("唐家三少");
        b2.setName("斗羅大陸Ⅱ");
        books.add(b1);
        books.add(b2);
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("books",books);
        modelAndView.setViewName("books");
        return modelAndView;
    }
}

4. 創(chuàng)建視圖

在resources目錄下的templates目錄中創(chuàng)建books.html,如下:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>圖書(shū)列表</title>
</head>
<body>
<table border="1">
    <tr>
        <td>圖書(shū)編號(hào)</td>
        <td>圖書(shū)名稱</td>
        <td>圖書(shū)作者</td>
    </tr>
    <tr th:each="book:${books}">
        <td th:text="${book.id}"></td>
        <td th:text="${book.name}"></td>
        <td th:text="${book.author}"></td>
    </tr>
</table>
</body>
</html>

代碼解釋:

  • 首先在第二行導(dǎo)入Thymeleaf 的名稱空間
  • 通過(guò)遍歷將books中的數(shù)據(jù)展示出來(lái),Thymeleaf中通過(guò)th:each進(jìn)行集合遍歷,通過(guò)th:text展示數(shù)據(jù)

5. 運(yùn)行

瀏覽器輸入"http://localhost:8081/books",查看運(yùn)行結(jié)果,如圖:

整合FreeMarker

FreeMarker 是一個(gè)非常古老的模板引擎,可以用在Web環(huán)境或者非Web環(huán)境中。FreeMarker 需要經(jīng)過(guò)解析才能在瀏覽器中展示出來(lái)。FreeMarker 不僅可以用來(lái)配置HTML頁(yè)面模板,也可以作為電子郵件模板、配置文件模板以及源碼模板。整合步驟如下:

1. 創(chuàng)建項(xiàng)目添加依賴

創(chuàng)建Spring Boot項(xiàng)目,然后添加spring-boot-starter-web和spring-boot-starter-freemarker依賴,如下:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--    整合FreeMarker    -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

2. 配置FreeMarker

Spring Boot對(duì)FreeMarker 也提供了自動(dòng)化配置類FreeMarkerAutoConfiguration,相關(guān)的配置屬性在FreeMarkerProperties中,F(xiàn)reeMarkerProperties的部分源碼如下:

@ConfigurationProperties(prefix = "spring.freemarker")
public class FreeMarkerProperties extends AbstractTemplateViewResolverProperties {
	public static final String DEFAULT_TEMPLATE_LOADER_PATH = "classpath:/templates/";
	public static final String DEFAULT_PREFIX = "";
	public static final String DEFAULT_SUFFIX = ".ftl";
    ...
}

FreeMarker 默認(rèn)模板位置和Thymeleaf 一樣,都在classpath:/templates/中,默認(rèn)文件后綴是.ftl,開(kāi)發(fā)者可以在application.properties 中對(duì)這些默認(rèn)配置進(jìn)行修改,如下:

3. 控制器

控制器和Thymeleaf 中的控制器一樣,這里不再重復(fù)

4. 創(chuàng)建視圖

在resources目錄下的templates目錄中創(chuàng)建books.ftl 文件,如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>圖書(shū)列表FreeMarker</title>
</head>
<body>
<table border="1">
    <tr>
        <td>圖書(shū)編號(hào)</td>
        <td>圖書(shū)名稱</td>
        <td>圖書(shū)作者</td>
    </tr>
    <#if books ?? && (books?size>0)>
    <#list books as book>
        <tr>
            <td>${book.id}</td>
            <td>${book.name}</td>
            <td>${book.author}</td>
        </tr>
    </#list>
    </#if>
</table>
</body>
</html>

代碼解釋:

先判斷model中的books部位可控并且books中有數(shù)據(jù),然后再進(jìn)行遍歷

5. 運(yùn)行

瀏覽器輸入"http://localhost:8081/books",查看運(yùn)行結(jié)果,如圖:

到此這篇關(guān)于SpringBoot整合Thymeleaf與FreeMarker視圖層技術(shù)的文章就介紹到這了,更多相關(guān)SpringBoot整合視圖層內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringMVC中的常用注解和用法舉例詳解

    SpringMVC中的常用注解和用法舉例詳解

    在Spring和SpringMVC中,注解的使用大大簡(jiǎn)化了配置,提高了代碼的可讀性和可維護(hù)性,這篇文章主要給大家介紹了關(guān)于SpringMVC中常用注解和用法的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • 客戶端設(shè)置超時(shí)時(shí)間真的很重要

    客戶端設(shè)置超時(shí)時(shí)間真的很重要

    今天小編就為大家分享一篇關(guān)于客戶端設(shè)置超時(shí)時(shí)間真的很重要,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • Shell腳本管理Java應(yīng)用程序的高效方法

    Shell腳本管理Java應(yīng)用程序的高效方法

    在軟件開(kāi)發(fā)中,管理和監(jiān)控 Java 應(yīng)用程序的運(yùn)行狀態(tài)變得愈加重要,本文將分享一個(gè)自用的簡(jiǎn)單但高效的 Shell 腳本,幫助輕松管理 JAR 包的啟動(dòng)、停止和日志管理,需要的朋友可以參考下
    2024-09-09
  • Maven重復(fù)依賴問(wèn)題解決(同一個(gè)jar多個(gè)版本)

    Maven重復(fù)依賴問(wèn)題解決(同一個(gè)jar多個(gè)版本)

    本文主要介紹了Maven重復(fù)依賴問(wèn)題解決(同一個(gè)jar多個(gè)版本),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • SpringMVC靜態(tài)資源訪問(wèn)問(wèn)題如何解決

    SpringMVC靜態(tài)資源訪問(wèn)問(wèn)題如何解決

    這篇文章主要介紹了SpringMVC靜態(tài)資源訪問(wèn)問(wèn)題如何解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Maven 不同環(huán)境靈活構(gòu)建的步驟

    Maven 不同環(huán)境靈活構(gòu)建的步驟

    在項(xiàng)目開(kāi)發(fā)過(guò)程中,合理地使用Maven管理不同的構(gòu)建環(huán)境(開(kāi)發(fā)、測(cè)試、生產(chǎn))是提高項(xiàng)目管理效率和應(yīng)對(duì)復(fù)雜項(xiàng)目需求的關(guān)鍵,本文就來(lái)介紹一下Maven 不同環(huán)境靈活構(gòu)建的步驟,感興趣的可以了解一下
    2024-10-10
  • Spring Boot 集成MyBatis 教程詳解

    Spring Boot 集成MyBatis 教程詳解

    這篇文章主要介紹了Spring Boot 集成MyBatis 教程詳解,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-04-04
  • 詳解Spring?MVC優(yōu)雅處理異常的6種方式

    詳解Spring?MVC優(yōu)雅處理異常的6種方式

    在Spring中提供了多種機(jī)制來(lái)處理控制器拋出的異常,確保應(yīng)用程序在面對(duì)各種錯(cuò)誤情況時(shí)能夠優(yōu)雅地響應(yīng),本文我們來(lái)詳細(xì)分析Spring?MVC中6種優(yōu)雅處理異常的方式,需要的可以參考下
    2024-12-12
  • ShardingSphere-Proxy5搭建使用過(guò)程分析

    ShardingSphere-Proxy5搭建使用過(guò)程分析

    ShardingSphere-Proxy是跨語(yǔ)言的數(shù)據(jù)庫(kù)代理服務(wù)端,主要用來(lái)處理:分表、分庫(kù)、讀寫(xiě)分離 等,這篇文章主要介紹了ShardingSphere-Proxy5搭建使用過(guò)程,需要的朋友可以參考下
    2022-10-10
  • java servlet手機(jī)app訪問(wèn)接口(二)短信驗(yàn)證

    java servlet手機(jī)app訪問(wèn)接口(二)短信驗(yàn)證

    這篇文章主要介紹了java servlet手機(jī)app訪問(wèn)接口(二),短信驗(yàn)證,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12

最新評(píng)論

两当县| 互助| 报价| 丹寨县| 柘荣县| 三都| 仁寿县| 颍上县| 当雄县| 凤冈县| 白水县| 靖西县| 嵩明县| 绍兴市| 榆社县| 吐鲁番市| 蚌埠市| 石门县| 喜德县| 普宁市| 通河县| 尚义县| 吉首市| 甘泉县| 浮山县| 东至县| 新津县| 平南县| 廉江市| 江源县| 阿拉尔市| 德钦县| 丰镇市| 紫阳县| 胶州市| 台中县| 盐山县| 密云县| 正蓝旗| 永安市| 图们市|