欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring?Boot?整合?FreeMarker?實例分享

 更新時間:2022年05月23日 11:14:50   作者:??村雨遙????  
這篇文章主要分享了Spring?Boot整合FreeMarker?實例FreeMarker是一款模板引擎,即一種基于模板和要改變的數(shù)據(jù),并用來生成輸出文本,更多相關(guān)介紹需要的小伙伴可以參考下面文章內(nèi)容

一、前言

在之前的文章Spring Boot 整合 Thymeleaf 實例分享中,我們學(xué)習(xí)了如何將模板 Thymeleaf 整合到 Spring Boot 中,那今天我們就來看看,另一個老牌的開源免費(fèi)模板引擎 - FreeMarker!

二、FreeMarker 簡介

FreeMarker 是一款模板引擎:即一種基于模板和要改變的數(shù)據(jù),并用來生成輸出文本(HTML網(wǎng)頁,電子郵件,配置文件,源代碼等)的通用工具。 它不是面向最終用戶的,而是一個Java類庫,是一款程序員可以嵌入他們所開發(fā)產(chǎn)品的組件。

以上就是出自 FreeMarker 的官方定義,我們通過使用 FreeMarker,可以將我們所需的模板何數(shù)據(jù)渲染成 HTML,從而實現(xiàn)我們想要的效果。通過將模板與數(shù)據(jù)分開,讓分工更加明確,模板方面則專注于如何將數(shù)據(jù)進(jìn)行展現(xiàn),而在數(shù)據(jù)方面,我們就可以專注于展示何種數(shù)據(jù),下圖就是我們以上所描述的 FreeMarker 的功能。

那接下來,我們就來看看,如何將 FreeMarker 像 Thymeleaf 一樣整合到我們的 Spring Boot 中,讓我們的開發(fā)更加簡單。

三、準(zhǔn)備工作

環(huán)境準(zhǔn)備

正式開始之前,依然給出本文所基于的環(huán)境,避免環(huán)境問題可能給大家?guī)淼挠绊憽?/p>

  • JDK 17(理論上推薦不低于 1.8 版本)
  • IDEA
  • SpringBoot 2.x

添加 FreeMarker 依賴

開始之前,我們需要添加 FreeMarker 的相關(guān)依賴,同樣這里我們可以選擇兩種方式。一種是在創(chuàng)建項目時就添加上,另一種則是創(chuàng)建項目后在項目 pom.xml 文件中手動添加,接下來我們分別來看看兩種不同的方式應(yīng)該如何添加。如果還不清楚如何創(chuàng)建 Spring Boot 項目,可以參照我之前的一篇文章:Spring Boot 教程之創(chuàng)建項目的三種方式

  • 第一種

在使用 IDEA 創(chuàng)建 Spring Boot 新項目時,添加依賴時將模板引擎中的 Apache FreeMarker 勾選上。

2.第二種

如果在創(chuàng)建時未添加 FreeMarker 模板引擎依賴,或者在項目開始創(chuàng)建之初并未有此需求,但后續(xù)過程中又增加了該需求,則此時可以直接在項目 pom.xml 中手動添加 FreeMarker 依賴即可。

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

添加 FreeMarker 相關(guān)配置

添加依賴后,我們需要在項目配置文件 application.yml 中添加 FreeMarker 的相關(guān)配置。

spring:
  freemarker:
    # 模板后綴名
    suffix: .ftl
    # 文檔類型
    content-type: text/html
    # 頁面編碼
    charset: UTF-8
    # 頁面緩存
    cache: false
    # 模板路徑
    template-loader-path: classpath:/templates/

四、編寫實體類和 Controller

編寫實體類

創(chuàng)建一個 User 類,并將其各種 setter、getter、構(gòu)造方法等完成,這里我依然使用了 Lombok 插件,以便簡化我們的代碼。關(guān)于該插件的更多用法,可以參照我之前的文章:Lombok 安裝和使用小技巧

package com.cunyu.springbootfreemarkerdemo.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.stereotype.Component;
@Component
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private int age;
    private String name;
    private String email;
}

編寫 Controller

這里我們創(chuàng)建一個 User 對象,然后設(shè)置其年齡、Email、姓名等相關(guān)信息,然后將其加到屬性中,方便傳輸?shù)角岸诉M(jìn)行展示。

package com.cunyu.springbootfreemarkerdemo.controller;
import com.cunyu.springbootfreemarkerdemo.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class UserController {
    @GetMapping("/index")
    public String index(Model model) {
        User user = new User();
        user.setAge(26);
        user.setEmail("747731461@qq.com");
        user.setName("村雨遙");
        model.addAttribute("user", user);
        return "index";
    }
}

數(shù)據(jù)渲染

當(dāng)完成實體類和 Controller 編寫后,我們就可以利用模板來進(jìn)行展示了。我們在項目的 resources/templates 路進(jìn)行新建一個 index.ftl 文件,注意這里文件名要保持和 Controller 中 index 方法所返回的字符串一致。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>FreeMarker 實驗</title>
</head>
<body>
    <table>
        <tr>
            <td>姓名</td>
            <td>年齡</td>
            <td>Email</td>
        </tr>
        <tr>
            <td>${user.name}</td>
            <td>${user.age}</td>
            <td>${user.email}</td>
        </tr>
    </table>
</body>
</html>

五、總結(jié)

我們可以結(jié)合之前的文章:Spring Boot 整合 Thymeleaf 實例分享共同閱讀,對比 Thymeleaf 和 FreeMarker 在整合過程中的一些共同點和不同點,相信你會有更多的收獲。

到此這篇關(guān)于Spring Boot 整合 FreeMarker 實例分享的文章就介紹到這了,更多相關(guān)Spring Boot 整合 FreeMarker 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Nebula?Graph介紹和SpringBoot環(huán)境連接和查詢操作

    Nebula?Graph介紹和SpringBoot環(huán)境連接和查詢操作

    Nebula?Graph?是一款開源的、分布式的、易擴(kuò)展的原生圖數(shù)據(jù)庫,能夠承載包含數(shù)千億個點和數(shù)萬億條邊的超大規(guī)模數(shù)據(jù)集,并且提供毫秒級查詢,這篇文章主要介紹了Nebula?Graph介紹和SpringBoot環(huán)境連接和查詢,需要的朋友可以參考下
    2022-10-10
  • Java 如何獲取url地址文件流

    Java 如何獲取url地址文件流

    這篇文章主要介紹了Java 如何獲取url地址文件流,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Spring中統(tǒng)一異常處理示例詳解

    Spring中統(tǒng)一異常處理示例詳解

    這篇文章主要給大家介紹了關(guān)于Spring中統(tǒng)一異常處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用spring具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • 冒泡排序算法原理及JAVA實現(xiàn)代碼

    冒泡排序算法原理及JAVA實現(xiàn)代碼

    關(guān)鍵字較小的記錄好比氣泡逐趟上浮,關(guān)鍵字較大的記錄好比石塊下沉,每趟有一塊最大的石塊沉底
    2014-01-01
  • Java數(shù)據(jù)結(jié)構(gòu)二叉樹難點解析

    Java數(shù)據(jù)結(jié)構(gòu)二叉樹難點解析

    樹是一種重要的非線性數(shù)據(jù)結(jié)構(gòu),直觀地看,它是數(shù)據(jù)元素(在樹中稱為結(jié)點)按分支關(guān)系組織起來的結(jié)構(gòu),很象自然界中的樹那樣。樹結(jié)構(gòu)在客觀世界中廣泛存在,如人類社會的族譜和各種社會組織機(jī)構(gòu)都可用樹形象表示
    2021-10-10
  • SpringBoot整合微信登錄功能的實現(xiàn)方案

    SpringBoot整合微信登錄功能的實現(xiàn)方案

    今天通過本文給大家分享微信登錄與SpringBoot整合過程,微信掃描登錄實現(xiàn)代碼知道掃描后點擊登錄的全部過程,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-10-10
  • Java文件操作之按行讀取文件和遍歷目錄的方法

    Java文件操作之按行讀取文件和遍歷目錄的方法

    這篇文章主要介紹了Java文件操作之按行讀取文件和遞歸遍歷目錄的方法,遍歷目錄文中分別舉了遞歸和非遞歸的例子,需要的朋友可以參考下
    2016-03-03
  • 可能是全網(wǎng)最詳細(xì)的springboot整合minio教程

    可能是全網(wǎng)最詳細(xì)的springboot整合minio教程

    MinIO是全球領(lǐng)先的對象存儲先鋒,在標(biāo)準(zhǔn)硬件上,讀/寫速度上高達(dá)183 GB/秒和171 GB/秒,下面這篇文章主要給大家介紹了關(guān)于springboot整合minio的相關(guān)資料,這個教程可能是全網(wǎng)最詳細(xì)的,需要的朋友可以參考下
    2022-06-06
  • Spring Profile與PropertyPlaceholderConfigurer項目多環(huán)境配置切換

    Spring Profile與PropertyPlaceholderConfigurer項目多環(huán)境配置切換

    這篇文章主要介紹了Spring Profile與PropertyPlaceholderConfigurer項目多環(huán)境配置切換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 基于FlashPaper實現(xiàn)JSP在線閱讀代碼示例

    基于FlashPaper實現(xiàn)JSP在線閱讀代碼示例

    這篇文章主要介紹了基于FlashPaper實現(xiàn)JSP在線閱讀代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10

最新評論