Hello,又到周一,搜狗测试小编华安又和大家见面啦。今天我们聊一聊java的模板引擎之一-----Freemarker!Let's go!
1.Freemarker介绍
FreeMarker是一款 模板引擎:即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
模板编写为FreeMarkerTemplate Language (FTL)。它是简单的,专用的语言, 不是 像PHP那样成熟的编程语言。 那就意味着要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板中,你可以专注于如何展现数据,而在模板之外可以专注于要展示什么数据。
这种方式通常被称为 MVC (模型 视图 控制器) 模式,对于动态网页来说,是一种特别流行的模式。 它帮助从开发人员(Java 程序员)中分离出网页设计师(HTML设计师)。设计师无需面对模板中的复杂逻辑, 在没有程序员来修改或重新编译代码时,也可以修改页面的样式。
而FreeMarker最初的设计,是被用来在MVC模式的Web开发框架中生成HTML页面的,它没有被绑定到 Servlet或HTML或任意Web相关的东西上。它也可以用于非Web应用环境中。
官网:http://freemarker.foofun.cn/
为了方便演示,新建项目demo,且项目目录结构如下:
2.前期准备
2.1数据库:
CREATE TABLE `user` (
`id` int(11) NOT NULL DEFAULT '0',
`name` varchar(255) NOT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
并且插入两条数据:
2.2环境配置文件准备
2.2.1POM文件如下:
Spring boot 必备 + spring boot 测试类
Spring boot的父依赖(必备)
2.2.2 application.properties文件准备(数据库配置 + mybatis 配置+freemarker 配置)
2.2.3项目配置文件准备:
Mapper文件
Ftl文件,这里简单打印 user的name。
启动,预览配置好的controller。
成功~!
3.代码详见以下git地址
因为涉及的代码较多,为了方便大家阅读本文,故,在此未贴出详细代码
如有需要可以参考以下git信息。
https://github.com/JeffLi1993/springboot-learning-example/tree/master/springboot-freemarker
4.常见的问题解答:
程序如何找到user.ftl的?
会去拼接user.ftl
return "user";
不知道ftl中的参数users是哪里来的?
Model对象中的users会传递到 user.ftl中。
model.addAttribute("users",users);
UserDao 无法注入,出现Could not autowire. No beans of 'UserDao'type found。
在DAO接口上添加@Mapper 标签
Controller中无法找到serviceimple的bean
在service层上添加@service
不知道程序如何找到mapper文件的
在Application.properties文件中。
Spring boot 返回字符串,不返回渲染页面
把@RestController替换为@Controller注解
@RestController注解表示返回的内容都是HTTP Content不会被模版引擎处理的
详细的例子搭建可以参考第三步给出的代码信息,最好是doneload下来,自己手动拼撸一遍哦。