zoukankan      html  css  js  c++  java
  • SpringBoot 整合freemarker

    1.freemarker介绍

    Apache FreeMarker是一款开源的模板引擎:即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个java类库,是一款程序员可以嵌入他们所开发产品的组件。模板使用FreeMarker Template Language(FTL)模板语言编写,这是一种简单的专用语言。模板用于展示数据,数据模型用于呈现什么数据。

    模板 + 数据模型 = 输出

     FreeMarker最初是为在MVC Web应用程序框架中生成HTML页面而创建的,但它并不绑定到servlet、HTML或任何与Web相关的内容。它也可以用于非Web应用环境中。

    2.FreeMarker特点

    (1)强大的模板语言
    (2) 多用途且轻量
    (3) 智能的国际化和本地化
    (4) XML处理能力
    (5) 通用的数据模型

    3.应用场景

    (1) 动态页面:它帮助从开发人员(Java程序员)中分离出网页设计师(HTML设计师)。设计师无需面对模板中的复杂逻辑,在没有程序员来修改或重新编译代码时,也可以修改页面的样式。
    (2) 页面静态化:比较适合运用在访问量大(或页面数据量大),但是数据很少与后台进行交互(即对实时性要求不是很高的)的页面,比如商品网站上的商品详情页等。
    (3) 代码生成器

    4.freemarker pom依赖

    <!-- 引⼊入freemarker模板引擎的依赖 -->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
    </dependency>

    5. HTML模板(src/main/resources/templates/fm/user/freemaker.ftl)

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    Springboot freemarker整合html页面
    <h1>id: ${userAttribute.id}</h1>
    <h1>name: ${userAttribute.username}</h1>
    <h1>pwd: ${userAttribute.pwd}</h1>
    </body>
    </html>

    6.Freemarker基础配置 => application.properties

    # 是否开启freemarker缓存,本地为false,⽣生产建议为true
    spring.freemarker.cache=false
    spring.freemarker.charset=UTF-8
    spring.freemarker.allow-request-override=false
    spring.freemarker.check-template-location=true
    #类型
    spring.freemarker.content-type=text/html
    spring.freemarker.expose-request-attributes=true
    spring.freemarker.expose-session-attributes=true
    #⽂文件后缀
    spring.freemarker.suffix=.ftl
    #路路径
    spring.freemarker.template-loader-path=classpath:/templates/

    7.新建 FreemakerController

    package com.xiaobing.demo001.controller;
    
    import com.xiaobing.demo001.domain.User;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.ModelMap;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    @RequestMapping("freemaker")
    public class FreemakerController {
    
        User user = new User(001,"武松","123456");
        @GetMapping("test")
        public  String test(ModelMap modelMap){
            modelMap.addAttribute("userAttribute",user);
            return "user/fm/freemaker";
        }
    }

    8.启动项目

    9.web访问

    --------------------------------------  亲测,学习笔记-----------------------------------

  • 相关阅读:
    网络流相关题目
    【洛谷P3119】[USACO15JAN]草鉴定Grass Cownoisseur
    【洛谷八连测R6】yanQval-透明的星尘
    【洛谷八连测R6】yanQval-分离丧失的既视感
    【洛谷八连测R6】yanQval-不可逆的重启动
    【洛谷P2700】逐个击破
    【洛谷八连测R5】whzzt-Confidence
    【洛谷八连测R5】whzzt-Warmth
    【洛谷八连测R5】whzzt-Conscience
    【NOIP模拟赛】
  • 原文地址:https://www.cnblogs.com/xiaozhaoboke/p/14652167.html
Copyright © 2011-2022 走看看