1. 程式人生 > >【Freemarker】SpringMVC使用Freemarker作為檢視解析

【Freemarker】SpringMVC使用Freemarker作為檢視解析

What is Freemarker?

FreeMarker是一個基於Java的模板引擎,最初專注於使用MVC軟體架構生成動態網頁。但是,它是一個通用的模板引擎,不依賴於servlets或HTTP或HTML,因此它通常用於生成原始碼,配置檔案或電子郵件。( from wikipedia.org)
官方網站:http://freemarker.org/

How to use Freemarker?

本文中會介紹 Freemarker 在 JavaWeb 中作為檢視展示的用法(類似於JSP的功能),後面有機會可以介紹一下使用這種模板引擎技術做程式碼生成工具或是在電子郵件功能上的使用。

正文

最開始我們準備好我們的第一個 Freemarker 模板 在WEB-INF 下建 templates 資料夾,然後建立 test.ftl 模板

<html>  
    <head> 
        <title>freemarker Test</title>  
    </head>
    <body>  
        <h1>Hello,${name}</h1>  
    </body>  
</html>  

接著引入依賴

    <properties
>
<spring.version>4.3.6.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.23</version
>
</dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> </dependencies>

配置 web.xml (新增SpringMVC過濾器 攔截所有請求,略)
然後在 Spring 配置檔案中新增 Freemarker檢視解析器

    <!-- FreeMarker模板路徑 -->
    <bean id="freemarkerConfig"
        class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
        <property name="freemarkerSettings" ref="freemarkerConfiguration" />
        <property name="templateLoaderPath">
            <value>/WEB-INF/templates</value>
        </property>
        <property name="freemarkerVariables">
            <map>
                <entry key="xml_escape" value-ref="fmXmlEscape" />
            </map>
        </property>
        <property name="defaultEncoding">
            <value>utf-8</value>
        </property>
    </bean>
    <bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape" />

    <!-- 配置freeMarker檢視解析器 -->
    <bean
        class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
        <property name="viewClass"
            value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
        <property name="contentType" value="text/html; charset=utf-8" />
        <property name="suffix" value=".ftl" />
        <property name="order" value="0" />
    </bean>

最後我們寫一個檢視控制器用來訪問 test.ftl

@Controller
@RequestMapping(value="hello")
public class FirstViewController {
    @RequestMapping(value = "test.html", method = RequestMethod.GET)
    public String index(String name,Model model) {
        model.addAttribute("message", "hello");
        model.addAttribute("name", name);
        return "/test";
    }
}

這裡寫圖片描述

最後

不要問我 Freemarker 和 JSP 那個更好,那個更優秀。

相關推薦

FreemarkerSpringMVC使用Freemarker作為檢視解析

What is Freemarker? FreeMarker是一個基於Java的模板引擎,最初專注於使用MVC軟體架構生成動態網頁。但是,它是一個通用的模板引擎,不依賴於servlets或HTTP或HTML,因此它通常用於生成原始碼,配置檔案或電子郵件。( f

C++error LNK2019: 無法解析的外部符號

轉:C++ error LNK2019: 無法解析的外部符號 錯誤解決方案 今天在實現類模板特例化的時候遇到一個問題,就是把類模板函式實現放到類的cpp檔案中,然後在main函式中使用這個類的時候,就會出現無法解析的外部符號:函式名(xxxx)等錯誤,那麼出現這個錯誤的原因是什麼呢? 原

LinuxLinux下檢視伺服器配置的命令

目錄 一、伺服器型號 二、作業系統 三、CPU 四、記憶體 五、硬碟 六、其他 一、伺服器型號 dmidecode|grep "System Information" -A9|egrep "Manufacturer|Product" 二

FreeMarker比ajax更好用的展示資料的工具

一、什麼是FreeMarker Freemarker是一個模板引擎,基於模板生成文字輸出的通用工具,是一個java類庫,程式設計師可以嵌入他們所開發產品的元件。 Freemarker主要用於MVC中的view層,生成html展示資料給客戶端,可以完全替代jsp。  Free

tensorflow命令列引數解析

1. tf.app.flags,用於支援接受命令列傳遞引數 import tensorflow as tf #第一個是引數名稱,第二個引數是預設值,第三個是引數描述 tf.app.flags.DEFINE_string('str_name', 'def_v_1',"descrip1")

Linux 建立、檢視、刪除檔案

目錄 建立並檢視 單個刪除 從小白開始,記錄每一次遇到的問題,然後整理出來,我相信剛接觸Linux的人多多少少也會遇到類似的問題,如果看到了我的部落格,也是一種緣分。 今天想記錄下如何建立,檢視,以及刪除一個檔案。 建立並檢視 首先看看最普通的辦法,純粹使

linuxLinux下檢視CPU型號,記憶體大小,硬碟空間的命令(詳解)

1 檢視CPU 1.1 檢視CPU個數 # cat /proc/cpuinfo | grep "physical id" | uniq | wc -l 2 **uniq命令:刪除重複行;wc –l命令:統計行數** 1.2 檢視CPU核數 # cat /proc/c

C++error LNK2019: 無法解析的外部符號 [email protected

原因:c語言執行時找不到適當的程式入口函式 解決:對於控制檯應用程式 1.選單中選擇 Project->Properties, 彈出Property Pages視窗 2.在左邊欄中依次選擇:Configuration Properties->C/C++->

LinuxLinux作業系統檢視伺服器配置資訊

檢視伺服器配置資訊 編寫bash shell指令碼檢視Linux作業系統的伺服器配置資訊 1 #!/bin/bash 2 echo "This lists the information of this computer." 3 echo 4 echo "Hostna

javaeclipse執行工程檢視jmx資訊

eclipse 啟動java專案預設沒有開啟jmx遠端檢視功能,如果需要看專案執行的執行緒記憶體使用量等資訊,可以在eclipse啟動引數中增加:(也可以單獨配置選項的jconsole資訊,在run-》run configurations-》選擇對應的java applica

Pythonconfigparser配置檔案解析

python之configparser配置檔案解析器 此模組提供了 ConfigParser類,該類實現了一種基本配置語言,該語言提供了類似於Microsoft Windows INI檔案中的結構。您可以使用它來編寫可以由終端使用者輕鬆定製的Python程式。 註解: 此庫

leetcodeAdd Two Numbers 解析以及拓展

題目: You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their

ORACLE常用物化檢視相關元資料查詢語句

對物化檢視的狀態等資訊進行查詢,監控和管理時,需要對系統檢視進行查詢,以下列出了常用的物化檢視狀態、依賴關聯,批量維護時能用到的查詢語句,根據具體情況進行適當修改。 基本資訊查詢 -- 物化檢視基本資訊 SELECT OWNER

Swift模態檢視的動畫展示

1、業務需求:點選按鈕,自定義一個模態動畫,動畫大概,把上個介面一分為二,從中間分離然後顯示模態出來的介面 import UIKit // 列舉:present、dismiss的動畫區分 enum CNPresentOneTransitionType { case Prese

DB2效能管理檢視

1.效能管理部分檢視列表 可以使用命令db2 list tables for schema sysibmadm獲取所有的效能管理檢視 檢視名稱              模式名

FreeMarker程式開發資料模型,物件包裝

在簡單的示例中,可以使用 java.lang 和 java.util 包下的類,還有使用者自定義的 Java Bean來構建資料物件。 使用 java.lang.String 來構建字串使用java.lang.Number 來派生數字型別使用 java.lang.Boo

freemarker、jsp多檢視解析器Spring配置

前提條件maven依賴 <!-- 和Spring整合需要此jar包 --> <dependency> <groupId>org.springframework&

C++陣列作為引數傳遞的那些事兒

先看程式碼: #include <cstdio> void foo(int array[2]) { printf("int array[2]:\t\t%x %d\n", &array, sizeof(array)); } vo

FreeMarker利用freemarker生成word版報表

前言: 在很多業務系統中,都需要生成月報,週報的報表。freemarker就很適合生成word版報表,freemarker就是利用word本身自帶的xml格式進行文字替換,圖片替換等操作的,當然除了簡單的替換文字之外,他還有其他的高階用法,詳情請見fre

Hadoop用web檢視hadoop執行狀態

上一篇文章(去部落格園,去CSDN),我們安裝完hadoop,下面我們從視覺上看看hadoop怎麼玩的。  我們可以在win7系統上,通過web介面,在瀏覽器位址列輸入地址,直接檢視hadoop的執