Springboot集成FreeMarker
Apache官网对FreeMarker的解释如下:
Apache FreeMarker™是一个模板引擎 :一个基于模板和变化的数据来生成文本输出(HTML网页,电子邮件,配置文件,源代码,等等)的Java库。
模板是用FreeMarker模板语言(FTL)编写的,这是一种简单的专业语言(不是像PHP那样成熟的编程语言)。 通常,使用通用编程语言(如Java)来准
备数据(发出数据库查询、进行业务计算)。然后,Apache FreeMarker使用模板显示准备好的数据。在模板中,您关注的是如何显示数据,而在模
板 之外,您关注的是要显示什么数据。

这种方法通常被称为MVC (Model View Controller)模式,尤其适用于动态web页面。它有助于将web页面设计人员(HTML作者)和开发人员(通
常是Java程序员)分离开来。设计人员不会在模板中面对复杂的逻辑,而且可以在不需要程序员更改或重新编译代码的情况下更改页面的外观。
虽然FreeMarker最初是为在MVC web应用程序框架中生成HTML页面而创建的,但它并不绑定到servlet或HTML或任何与web相关的东西。它
也用于非web应用程序环境。
特点:
FreeMarker的亮点:
- 强大的模板语言:条件块、迭代、赋值、字符串和算术操作和格式、宏和函数,包括其他模板、缺省转义(可选)等等
- 多用途和轻量级:零依赖,任何输出格式,可以从任何地方加载模板(可插拔),许多配置选项
- 智能的国际化和本地化:本地化敏感的数字和日期/时间格式,本地化的模板变化。
- XML处理功能:将XML DOM-s放入数据模型并遍历它们,甚至以声明的方式处理它们
在idea上新建springboot项目,添加如下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
appliaction.properties配置文件 :
#端口号
server.port=8087 #ftl文件路径
spring.freemarker.template-loader-path=classpath:/templates/
temlpates下新建 freemaker.ftl 文件
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
<head>
<title>Hello FreeMaker!</title>
</head>
<body>
<p>
welcome ${name} to freemarker!
</p> <p>性别:
<#if sex==0>
女
<#elseif sex==1>
男
<#else>
保密
</#if>
</p> <h4>我的好友:</h4>
<#list friends as item>
姓名:${item.name} , 年龄${item.age}
<br>
</#list>
</body>
</html>
Controller如下:
@Controller
public class StudentController { @RequestMapping("testFreeMaker")
public String student(Map<String,Object> map){
map.put("name", "Eminem");
map.put("sex", 1); //sex:性别,1:男;0:女; List<Map<String, Object>> friends = new ArrayList<Map<String, Object>>();
Map<String, Object> friend = new HashMap<String, Object>();
friend.put("name", "Dr.Dre");
friend.put("age", 53);
friends.add(friend);
friend = new HashMap<String, Object>();
friend.put("name", "Skylar Grey");
friend.put("age", 32);
friends.add(friend);
map.put("friends", friends); return "freemaker";
}
启动项目,访问:http://localhost:8087/testFreeMaker
、
代码地址:https://github.com/liuchunbo24/SpringBoot_FreeMarker_Demo
Springboot集成FreeMarker的更多相关文章
- springboot 集成 freemarker
前面我们已经实现了thymeleaf模板,其实freemarker和thymeleaf差不多,都可以取代JSP页面,实现步骤也差不多,我们来简单实现一下 引入pom.xml依赖如下 <depen ...
- SpringBoot 集成FreeMarker
SpringBoot官方不推荐使用jsp,因为jsp不好发挥SpringBoot的特性.官方推荐使用模板引擎代替jsp,现在很多公司都使用FreeMarker来作为SpringBoot的视图. Spr ...
- SpringBoot集成Freemarker与Thymeleaf
一:概括 pom.xml添加依赖 配置application.yml HTML页面使用表达式 二:Freemarker模板引擎 1.添加依赖 <!-- ftl模板引擎 --> <de ...
- SpringBoot集成freemarker和thymeleaf模板
1.在MAVEN工程POM.XML中引入依赖架包 <!-- 引入 freemarker 模板依赖 --> <dependency> <groupId>org.spr ...
- springboot集成freemarker 配置application.properties详解
#配置freemarker详解 #spring.freemarker.allow-request-override=false # Set whether HttpServletRequest att ...
- springboot集成freemarker属性配置(不知道是针对于某个版本,2.0后有变动)
freemarker属性配置 freemarker属性配置: spring.freemarker.allow-request-override=false # 设置是否允许HttpServletReq ...
- SpringBoot集成Freemarker前端模板
1.在pom.xml中引入freemarker的jar包 <dependency> <groupId>org.springframework.boot</groupId& ...
- SpringBoot 集成 FreeMarker 导出 Word 模板文件(底部附源码)
思路解说 word 模板文件(doc 或 docx 文件)另存为 xml 文件 将后缀 xml 改成 html:大部分文档会改成 ftl(FreeMarker 的后缀名),因为 word 文件另存为 ...
- springboot集成freemarker静态资源无法访问
如题配置文件加上 #设定静态文件路径,js,css等.static为你放置静态资源的文件夹名称,也可以叫别的名字.properties加上 spring.mvc.static-path-pattern ...
随机推荐
- Linux shell脚本中shift的用法说明
shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本). 示例1:依次读取输入的参数并打印参数个数:run ...
- SQLSTATE[HY000]: General error: 1030 Got error 28 from storage engine
今天上课程化平台考试,输入平台网址突然报这个错误 可以先df -h 发现/tmp文件使用满了 ,清理下不需要的临时文件即可
- Loj #3089. 「BJOI2019」奥术神杖
Loj #3089. 「BJOI2019」奥术神杖 题目描述 Bezorath 大陆抵抗地灾军团入侵的战争进入了僵持的阶段,世世代代生活在 Bezorath 这片大陆的精灵们开始寻找远古时代诸神遗留的 ...
- 字符串赋值给字符指针(char *a="hello")的正确理解方式
对于语句 char *a="hello"; 对于这个声明方式,会造成的误解是:声明了一个字符指针(它会指向一个位置),将“字符串”赋值给 指针表达式"*a"所 ...
- 利用Sonar定制自定义扫描规则
上有3种方法可以自定义soanr的代码校验规则: 直接在sonar的web接口中增加XPath规则: 通过插件的功能来增加自定义规则,比如checkstyle,pmd等插件是允许自定义规则的: 通 ...
- 【vue】使用vue+element搭建项目,Tree树形控件使用
1.依赖安装 本例中,使用render-content进行树节点内容的自定义,因此需要支持JSX语法.(见参考资料第3个) 在Git bash中运行一下指令 cnpm install\ babel-p ...
- .NET core2.0 发布至IIS中
.NET CORE和asp.net 发布时不太一样,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角 ...
- 360 随身 WiFi3 在 Ubuntu 14.04 下的使用
由于 360 随身 WiFi3 采用 Mediaek 代号 0e8d:760c 的芯片,目前没有官方或第三方 Linux 驱动,所以造成 Linux 用户的诸多困扰. 本文给出一个迂回的解决方案:在 ...
- 【Java】+SOFA
https://www.jianshu.com/p/e3dca8d5e9ee sofa脑图
- 多态练习题(通过UML建模语言来实现饲养员喂养动物)
项目需求如下图: package com.Summer_0428.cn; /** * @author Summer * 1.构建一个食物抽象类,Bone和Fish分别为其实现类,通过super传参. ...