文章目录

  • 1.FreeMarker介绍
    • 1)常用的java模板引擎还有哪些?
    • 2)freemarker是一个用Java开发的模板引擎
    • 3)模板+数据模型=输出
  • 2.FreeMarker快速入门
    • 1)创建测试工程
    • 2)配置文件
    • 3)创建模型类
    • 4)创建模板
    • 5)创建controller
    • 6)创建启动类
    • 7)测试

1.FreeMarker介绍

1)常用的java模板引擎还有哪些?

答:Jsp、Freemarker、Thymeleaf 、Velocity 等

2)freemarker是一个用Java开发的模板引擎

3)模板+数据模型=输出

reemarker并不关心数据的来源,只是根据模板的内容,将数据模型在模板中显示并输出文件(通常为html,也可以生成其它格式的文本文件)

例子:
数据模型:
模板:
输出:

2.FreeMarker快速入门

1)创建测试工程

创建一个freemarker 的测试工程专门用于freemarker的功能测试与模板的测试。
pom.xml如下

<?xml version="1.0" encoding="UTF‐8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema‐instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven‐4.0.0.xsd">
<parent>
<artifactId>xc‐framework‐parent</artifactId>
<groupId>com.xuecheng</groupId>
<version>1.0‐SNAPSHOT</version>
<relativePath>../xc‐framework‐parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>test‐freemarker</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter‐freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons‐io</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter‐test</artifactId>
</dependency>
</dependencies>
</project>

2)配置文件

配置application.yml和 logback-spring.xml

从cms工程拷贝这两个文件,进行更改, logback-spring.xml无需更改,application.yml内容如下:

server:
port: 8088 #服务端口
spring:
application:
name: test‐freemarker #指定服务名
freemarker:
cache: false #关闭模板缓存,方便测试
settings:
template_update_delay: 0 #检查模板更新延迟时间,设置为0表示立即检查,如果时间大于0会有缓存不方便
进行模板测试

3)创建模型类

在freemarker的测试工程下创建模型类型用于测试

package com.xuecheng.test.freemarker.model;
import lombok.Data;
import lombok.ToString;
import java.util.Date;
import java.util.List;
@Data
@ToString
public class Student {private String name;//姓名
private int age;//年龄
private Date birthday;//生日
private Float money;//钱包
private List<Student> friends;//朋友列表
private Student bestFriend;//最好的朋友
}

4)创建模板

在 src/main/resources下创建templates,此目录为freemarker的默认模板存放目录。
在templates下创建模板文件test1.ftl,模板中的${name}最终会被freemarker替换成具体的数据。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf‐8">
<title>Hello World!</title>
</head>
<body>
Hello ${name}!
</body>
</html>

5)创建controller

创建Controller类,向Map中添加name,最后返回模板文件

package com.xuecheng.test.freemarker.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.client.RestTemplate;
import java.util.Map;
@RequestMapping("/freemarker")
@Controller
public class FreemarkerController {@Autowired
RestTemplate restTemplate;
@RequestMapping("/test1")
public String freemarker(Map<String, Object> map){map.put("name","黑马程序员");
//返回模板文件名称
return "test1";
}
}

6)创建启动类

@SpringBootApplication
public class FreemarkerTestApplication {public static void main(String[] args) {SpringApplication.run(FreemarkerTestApplication.class,args);
}
}

7)测试

请求:http://localhost:8088/freemarker/test1
屏幕显示:Hello 黑马程序员!

学成在线--8.Freemarker入门教程相关推荐

  1. 黑马程序员pink老师前端入门教程,零基础必看的h5(html5)+css3+移动端前端视频教程(学成在线)

    一.基础班学习路线 三.CSS基础 1.PS切图 常见的图片格式 2.学成在线案例 案例准备工作 CSS属性书写顺序 页面布局整体思路 header区域制作 logo区域制作 导航栏nav区域制作 搜 ...

  2. web前端入门学习 css(5)(浮动)(ps切图)(css属性书写顺序)(学成在线网站案例)

    文章目录 传统网页布局的三种方式 标准流(普通流.文档流) 浮动(为什么需要浮动?) 浮动特性 浮动元素会脱离标准流,可以与普通流的元素相重叠 如果多个盒子都设置了浮动,则它们会按照属性值一行内显示并 ...

  3. 学成在线-第16天-讲义- Spring Security Oauth2 JWT RSA加解密

    学成在线-第16天-讲义- Spring Security Oauth2 JWT 1 用户认证需求分析 1.1 用户认证与授权 ​ 截至目前,项目已经完成了在线学习功能,用户通过在线学习页面点播视频进 ...

  4. 黑马程序员前端-CSS练手之学成在线页面制作

    前端学习笔记教程不定期更新中,传送门: 前端HTML第一天:什么是网页?什么是HTML?网页怎么形成? 黑马程序员前端-CSS入门总结 黑马程序员前端-CSS之emmet语法 黑马程序员前端-CSS的 ...

  5. 2023年最新黑马程序员Java微服务项目--学成在线

    正式上线Java微服务项目<学成在线> 项目对程序员的重要性 不用播妞多说了吧 更重要的是 这次是完整!实战!企业级!项目! 划重点:全新发布!正式上线! <学成在线>项目以在 ...

  6. 微服务实战项目-学成在线-课程发布模块

    学成在线-课程发布模块 1 模块需求分析 1.1 模块介绍 课程信息编辑完毕即可发布课程,发布课程相当于一个确认操作,课程发布后学习者在网站可以搜索到课程,然后查看课程的详细信息,进一步选课.支付.在 ...

  7. 学成在线--课程发布模块

    完整版请移步至我的个人博客查看:https://cyborg2077.github.io/ 学成在线–项目环境搭建 学成在线–内容管理模块 学成在线–媒资管理模块 学成在线–课程发布模块 学成在线–认 ...

  8. 学成在线-第13天-讲义-在线学习 HLS

    1在线学习需求分析 1.1需求描述 学成在线作为在线教育网站,提供多种学习形式,包括:录播.直播.图文.社群等,学生登录进入学习中心即可 在线学习,本章节将开发录播课程的在线学习功能,需求如下: 1. ...

  9. 学成在线网页制作(详细)

    项目分析 如图: 分为四个模块: header头部模块 精品推荐模块 编程入门模块 数据分析师模块 机器学习模块 前端工程师开发模块 footer模块 如果仔细观察的话,第2,5,6属于一个模块,样式 ...

最新文章

  1. JavaScript初学者编程题(13)
  2. SAP MM 物料主数据Plant Data Storage 1视图里的Storage Bin
  3. Java05-day05【方法(概述、调用过程图解)、带参方法、带返回值方法、重载、方法参数传递(基本类型、引用类型)】
  4. RabbitMQ管理(5)——集群管理
  5. visio 导出无边距的pdf 图
  6. 基于Ganos百行代码实现亿级矢量空间数据在线可视化
  7. 电脑摄像头一维条形码matlab识别
  8. 基于深度卷积神经网络的苹果叶片植物病理学疾病检测
  9. Asp.Net 2.0 发布问题(转)
  10. 终极算法---读书笔记
  11. PPT精品教程隐私政策
  12. 如何利用计算机技术检索文献,文献检索过程作业怎么写
  13. 长图PDF如何分页打印?
  14. 【2021软件创新实验室暑假集训】总结篇
  15. 超低频测试信号产生电路软件流程图,一种0_20Hz超低频信号发生器的设计与实现...
  16. pip 不使用本地缓存安装指定库
  17. Win10--解决电脑麦克风没声音的问题
  18. Java逍遥游记_我与《Java逍遥游记》
  19. k8s之pod和pod探针
  20. 点评2008年九大经济学家惊人语录

热门文章

  1. std::tie简单介绍
  2. 完成一个H.265/HEVC码流分析工具
  3. 让AMD在中国发声 APU14技术创新大会首次在华召开
  4. 怎样从Linux终端管理进程:10个你必须知道的命令
  5. vector 、map 、iterator 之学习笔记
  6. 解决:DuplicateMappingException: Table [xx] contains physical column name referred to by multiple ... .
  7. oracle怎样把查询的null转换为0
  8. 在CentOS7阿里云服务器部署ThinkPHP5,并配置phpstrom实现同步开发(微信小程序及管理员后端)...
  9. Jquery 多行拖拽图片排序 jq优化
  10. dl,dt,dd怎么用