前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Freemarker在spring boot中的应用

Freemarker在spring boot中的应用

作者头像
用户5521279
发布2019-06-02 15:38:55
2.1K0
发布2019-06-02 15:38:55
举报
文章被收录于专栏:搜狗测试搜狗测试

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不会被模版引擎处理的

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 搜狗测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档