前言

freemarker介绍;
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
前面我介绍了如何整合thymeleaf,那么现在我们再来了解一下SpringBoot中如何使用freemark

一、目标

使用freemark视图模板,并且于SpringBoot进行整合。 使用freemark显示用户(user)的信息

二、实现

首先创建一个SpringBoot项目,添加如下依赖

<dependencies><!-- freemark --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency><!-- web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- test --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

添加完依赖以后,就需要编写对应的ControllerviewUser.java
src/main/java/com/yukong/chapter22目录下新建User

package com.yukong.chapter22;import java.util.Date;/*** @Auther: xiongping22369* @Date: 2018/8/13 17:53* @Description: user类*/
public class User {/*** 用户名*/private String username;/*** 密码*/private String password;/*** 年龄*/private Integer age;/*** 性别 1=男 2=女 其他=保密*/private Integer sex;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Integer getSex() {return sex;}public void setSex(Integer sex) {this.sex = sex;}}

编写IndexController 实现将User信息传递给前台ftl页面。

@Controller
public class IndexController {@GetMapping("/aboutMe")public String index(Model model) throws ParseException {User user = new User();user.setUsername("yukong");user.setPassword("abc123");user.setAge(18);user.setSex(1);model.addAttribute("user", user);return "index";}}

注意这里使用的是@Controller
resource目录下新建templates文件夹并且在该目录下新建文件index.ftl
记住是ftl freemark文件的后缀名是ftl

index.ftl代码

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>freemark</title>
</head>
<body><p> 你好 ${user.username}</p><p> 密码 ${user.password}</p><p> 性别:<#if user.sex==1>男<#elseif user.sex==2>女<#else>保密</#if></p><p> 年龄 ${user.age}</p>
</body>
</html>

然后在src/resource/application.yml配置一下thymeleaf相关配置


server:port: 8989
spring:freemarker:request-context-attribute: req  #req访问requestsuffix: .ftl  #后缀名content-type: text/htmlenabled: truecache: false #缓存配置template-loader-path: classpath:/templates/ #模板加载路径 按需配置charset: UTF-8 #编码格式settings:number_format: '0.##'   #数字格式化,无小数点

启动Chapter22Application.java并且访问http://localhost:8989/aboutMe

结果如图

image.png

由上图可知,freemark成功接受到了后台传递的数据。并且渲染到页面显示。

三、总结

此致我们SpringBoot整合freemark就完毕了。

最后配套教程的代码全部在这里
github https://github.com/YuKongEr/SpringBoot-Study

SpringBoot2.0系列(03)---SpringBoot之使用freemark视图模板相关推荐

  1. SpringBoot2.0系列(2)---SpringBoot之使用Thymeleaf视图模板

    前言 Thymeleaf 是Java服务端的模板引擎,与传统的JSP不同,前者可以使用浏览器直接打开,因为可以忽略掉拓展属性,相当于打开原生页面,给前端人员也带来一定的便利.如果你已经厌倦了JSP+J ...

  2. SpringBoot2.0系列(4)---SpringBoot之使用JPA完成简单的rest api

    一. 前言 在前面我们已经知道在springboot中如何使用freemark与thymeleaf之类的视图模板引擎去渲染我们的视图页面,但是没涉及跟数据库交互的东西,所以今天在这里我们将介绍了一下如 ...

  3. SpringBoot2.0系列(1)----初识SpringBoot

    [SpringBoot2.0系列01]初识SpringBoot 一.介绍 想必大家都一定用过spring框架,每次整合spring框架的时候总是会有无穷无尽的xml配置文件,第一次写配置文件的时候,大 ...

  4. SpringBoot2.0系列--02--Controller

    SpringBoot2.0系列–02–Controller 文章目录 SpringBoot2.0系列--02--Controller 写在前面 示例 对于整个Controller类 Controlle ...

  5. SpringBoot2.0系列--06--定时任务Scheduled及具体例子

    SpringBoot2.0系列–06–定时任务Scheduled及具体例子 文章目录 SpringBoot2.0系列--06--定时任务Scheduled及具体例子 前言 介绍 总流程 时间循环参数 ...

  6. SpringBoot2.0系列教程(十三)Springboot防止XSS攻击

    Hello大家好,本章我们添加防止XSS攻击功能 .有问题可以加我VX:Mrchuchen. 一:什么是XSS XSS攻击全称跨站脚本攻击,是一种在web应用中的计算机安全漏洞,它允许恶意web用户将 ...

  7. 基于 SpringBoot2.0+优雅整合 SpringBoot+Mybatis

    SpringBoot 整合 Mybatis 有两种常用的方式,一种就是我们常见的 xml 的方式 ,还有一种是全注解的方式.我觉得这两者没有谁比谁好,在 SQL 语句不太长的情况下,我觉得全注解的方式 ...

  8. springboot2.0系列(二):配置属性

    为什么80%的码农都做不了架构师?>>>    前言 Spring Boot中核心思想:约定优于配置.那到底什么是约定优于配置? 约定优于配置(convention over con ...

  9. spring-boot-2.0.3不一样系列之源码篇 - springboot源码一,绝对有值得你看的地方

    前言 上篇:spring-boot-2.0.3不一样系列之shiro - 搭建篇,实现了spring-boot与shiro的整合,效果大家也看到了,工程确实集成了shiro的认证与授权功能.如果大家能 ...

最新文章

  1. php增删改查前后端分离,前后端分离之前端增删改查
  2. 兴起与繁荣,那些正在启航的行业
  3. 不再为Apache进程淤积、耗尽内存而困扰[转载]
  4. VS2010 error RC2170: bitmap file xxx.png is not in 3.00 format
  5. 关于Advisor注入
  6. 服务间调用要通过网关吗_Asp.Net Boilerplate微服务实战(二)架构解析
  7. [洛谷P4918]信仰收集
  8. CentOS7查看开放端口命令
  9. 总谐波失真计算公式_新能源汽车技术|车用轮毂电机转矩谐波协同控制策略
  10. 人脸检测,微软提出用RNN代替CNN
  11. MarkDown 的两种页内跳转方法!!!!!
  12. UDT协议实现分析——数据发送控制
  13. freeswitch 使用mysql替换默认的sqlite
  14. 对输入法的人机交互设计评价
  15. C++SOCKET面试题附答案
  16. H5标签input标签上传文件(图片)
  17. c# - Owin Katana
  18. 修复 j-link the connected j-link is defective 警告
  19. 如何30秒做出精美的Word排版?
  20. 边缘计算的深刻详细解读

热门文章

  1. mysql 利用触发器(Trigger)让代码更简单
  2. input子系统分析二
  3. 高性能HTTP加速器Varnish(性能调优篇)
  4. 计算n的阶乘以及n个阶乘相加
  5. 菜鸟学习笔记:Java提升篇10(网络2——UDP编程、TCPSocket通信、聊天室案例)
  6. ultraedit教程java_Java开发工具配置UltraEdit基础教程
  7. java并发AtomicReference
  8. python搭建web服务
  9. 7.4 流水线的冒险
  10. Spring MVC 实践笔记