一、Java模板引擎
模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。
在java中,主要的模板引擎有JSP、Thymeleaf、FreeMarker、
Velocity等。
虽然随着前后端分离的崛起和流行,模板引擎已遭受到冷落,但不少旧项目依然使用java的模板引擎渲染界面,而偶尔自己写一些练手项目,使用模板引擎也比起前后端分离要来的快速。
本系列会分别讲解SpringBoot怎么集成JSP、Thymeleaf和FreeMarker,至于Velocity,高版本的SpringBoot已经不支持Velocity了,这里也就不进行讲解了。
而这一篇,主要讲解Spring Boot如何集成FreeMarker。
一、Spring Boot集成FreeMarker
首先我们要引入依赖,除了核心的web依赖外,只需引入freemarker的statrer即可。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--freemarker依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
然后就是配置文件了。主要配置spring.freemarker节点下的视图文件目录template-loader-path以及文件后缀suffix,如果是本地开发,cache可以设置为false关闭缓存,避免修改文件后需要重新启动服务。
server:
port: 10900
spring:
profiles:
active: dev
freemarker:
enabled: true #是否启用freemarker
template-loader-path: classpath:/templates/ #设定模板的加载路径,多个以逗号分隔
suffix: .ftl #设定模板的后缀
content-type: text/html
check-template-location: true #是否检查模板位置是否存在
cache: false #是否启用模板缓存
charset: UTF-8 #模板编码
#一些常用配置
allow-request-override: false #是否允许HttpServletRequest属性覆盖(隐藏)控制器生成的同名模型属性
allow-session-override: false #是否允许HttpSession属性覆盖(隐藏)控制器生成的同名模型属性
expose-request-attributes: false #设定所有request的属性在merge到模板的时候,是否要都添加到model中
expose-session-attributes: false #是否在merge模板的时候,将HttpSession属性都添加到model中
expose-spring-macro-helpers: true #设定是否以springMacroRequestContext的形式暴露RequestContext给Spring’s macro library使用
prefer-file-system-access: true #是否优先从文件系统加载template,以支持热加载,默认为true
然后resoucres目录下新建templates目录,分别新建了hello.ftl和mv.ftl文件。
<h3>hello freemarker</h3>
<!DOCTYPE html>
<html lang="en">
<h3>mv freemarker</h3>
<span>I'm ${name} from mv method</span>
</html>
这里主要讲解如何集成FreeMarker,不对FreeMarker语法做过多的讲解,所以仅仅提供了两个简单的html文件作为演示。
接着再创建Controller类路由页面,该类十分简单,跳转hello页面,以及携带name=imyang跳转mv页面。
@Controller
@RequestMapping("index")
public class IndexApi {
@RequestMapping("/hello")
public String hello(){
return "hello";
}
@RequestMapping("/mv")
public ModelAndView mv(){
ModelAndView mv = new ModelAndView("mv");
mv.addObject("name","yanger");
return mv;
}
}
启动项目,分别访问http://localhost:10900/index/hello和http://localhost:10900/index/mv,可以看到已经可以展示页面信息了。
源码地址:https://github.com/imyanger/springboot-project/tree/master/p19-springboot-freemarker
SpringBoot系列:Spring Boot使用模板引擎FreeMarker的更多相关文章
-
springboot系列四、配置模板引擎、配置热部署
一.配置模板引擎 在之前所见到的信息显示发现都是以 Rest 风格进行显示,但是很明显在实际的开发之中,所有数据的显示最终都应该交由页面完成,但是这个页面并不是*.jsp 页面,而是普通的*.html ...
-
spring boot: freemarket模板引擎
spring boot: freemarket模板引擎 freemarket模板引擎,可以和thymeleaf模板引擎共存 pom.xml引入 <!-- Freemarket --> &l ...
-
SpringBoot系列之集成jsp模板引擎
目录 1.模板引擎简介 2.环境准备 4.源码原理简介 SpringBoot系列之集成jsp模板引擎 @ 1.模板引擎简介 引用百度百科的模板引擎解释: 模板引擎(这里特指用于Web开发的模板引擎)是 ...
-
spring boot: thymeleaf模板引擎使用
spring boot: thymeleaf模板引擎使用 在pom.xml加入thymeleaf模板依赖 <!-- 添加thymeleaf的依赖 --> <dependency> ...
-
SpringBoot系列:Spring Boot使用模板引擎Thymeleaf
一.Java模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档. 在jav ...
-
SpringBoot系列:Spring Boot使用模板引擎JSP
一.Java模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档. 在jav ...
-
Spring Boot Thymeleaf 模板引擎的使用
Spring Boot 中可以支持很多模板引擎,Thymeleaf 是 Spring Boot 官方推荐使用的模板引擎,虽然在社区 Thymeleaf 的性能被许多人所吐糟,但这仍然不影响大量的开发人 ...
-
Spring boot 梳理 - 模版引擎 -freemarker
开发环境中关闭缓存 spring: thymeleaf: cache: false freemarker: cache: false Spring boot 集成 freemarker <dep ...
-
Spring Boot 2.0 整合 FreeMarker 模板引擎
本篇博文将和大家一起使用Spring Boot 2.0 和FreeMarker 模板引擎整合实战. 1. 创建新的项目 2. 填写项目配置信息 3. 勾选web 模块 4. 勾选freemarker模 ...
随机推荐
-
谢欣伦 - OpenDev原创教程 - 设备查找类CxDeviceFind &; CxDeviceMapFind
这是一个精练的设备查找类,类名.函数名和变量名均采用匈牙利命名法.小写的x代表我的姓氏首字母(谢欣伦),个人习惯而已,如有雷同,纯属巧合. CxDeviceFind的使用如下: void CUsbSc ...
-
DIOCP单元文件应用场景
diocp.coder.tcpServer是用来做文件传输的 diocp.tcp.server这个是用来做通讯的
-
Nodejs&#183;内存控制
之前有考虑过Node中的内存管理,但是没想到Node的内存机制与JVM如此相像. 看完这部分的内容,基本可以了解Node中的内存使用技巧: 1 尽量不要做过多的缓存 2 使用队列应该有限制 3 注意全 ...
-
[Java基础] System.arraycopy使用
转载自:http://blog.csdn.net/java2000_net/article/details/4059465 System提供了一个native 静态方法arraycopy(),我们可以 ...
-
Flash上传组件之SWFUpload文件上传
一.什么是SWFUpload? SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而 ...
-
Webpack 2 视频教程 010 - 配置 ESLint 实现代码规范自动测试 (下)
原文发表于我的技术博客 这是我免费发布的高质量超清「Webpack 2 视频教程」. Webpack 作为目前前端开发必备的框架,Webpack 发布了 2.0 版本,此视频就是基于 2.0 的版本讲 ...
-
IOLI-crackme0x01-0x05 writeup
上一篇开了个头, 使用Radare2并用3中方法来解决crackme0x00, 由于是第一篇, 所以解释得事无巨细, 今天就稍微加快点步伐, 分析一下另外几个crackme. 如果你忘记了crackm ...
-
MIPCMS V3.1.0 远程写入配置文件Getshell过程分析(附批量getshell脚本)
作者:i春秋作家--F0rmat 0×01 前言 今天翻了下CNVD,看到了一个MIPCMS的远程代码执行漏洞,然后就去官网下载了这个版本的源码研究了下.看下整体的结构,用的是thinkPHP的架 ...
-
docker学习常用指令---第五章节
前面我们了解了docker的基本概念,和docker镜像,端口相关的内容.在具体的实际操作过程中,我们需要了解一些相关的docker操作指令. 一.Docker save指令 指令功能:将指定镜像保存 ...
-
log4j2搭建记录
今天新建了一个项目,自己弄的小玩意,想要做的正式点,就想引入日志.就想到了log4j2,经过几个小时的努力,还真的可以用了,下面就记录一下我是怎么做的. 下面是总的结构: 下面是MAVEN依赖: &l ...