前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「快学springboot」SpringBoot整合freeMark模板引擎

「快学springboot」SpringBoot整合freeMark模板引擎

作者头像
Happyjava
发布2019-07-17 16:37:28
4810
发布2019-07-17 16:37:28
举报
文章被收录于专栏:Happy的分享Happy的分享

前言

虽然现在流行前后端分离开发和部署,但是有时候还是需要用到服务端渲染页面的。比如:需要考虑到SEO优化等问题的时候,FreeMark其实还是很有作用的。本人的博客本来是用React开发的,但是后来发现搜索引擎难以收集由JS渲染的页面,所以前段时间,是用jQuery+FreeMark重写了我的博客前端页面。感兴趣的朋友,可以点击下面的查看更多的链接跳转至本人的博客。

在springboot中,不推荐使用JSP(其实任何项目都不推荐使用JSP),而是推荐使用模板引擎,如FreeMark。其实使用模板引擎替代jsp的好处有很多,比如:FreeMark不需要便已成为class,避免了内存溢出的可能性,等等。好处有很多,这里就不深入探讨了。

springboot引入FreeMark

引入依赖:

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
复制代码

配置FreeMark:

代码语言:javascript
复制
# freeMark config
spring.freemarker.allow-request-override=false
spring.freemarker.cache=true
spring.freemarker.check-template-location=true
spring.freemarker.charset=UTF-8
spring.freemarker.content-type=text/html
spring.freemarker.expose-request-attributes=false
spring.freemarker.expose-session-attributes=false
spring.freemarker.expose-spring-macro-helpers=false
spring.freemarker.suffix=.ftl
spring.freemarker.template-loader-path=classpath:/static/
复制代码

这里,我把freemark的路劲配置到了static目录下。完成这些步骤,FreeMark已经配置完成了。

可以通过一个简单的页面来测试下freeMark。在static文件夹中创建index.ftl

代码语言:javascript
复制
<!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>Freem测试</title>
</head>
<body>
这是一个FreeMark。后台传过来的数据:${data}
</body>
</html>
复制代码

这个freemark页面,展示从controller传过来的"data"。

新建一个PageController.class

代码语言:javascript
复制
@Controller
public class PageController {

    @GetMapping(value = "/")
    public String index(HttpServletRequest request){
        request.setAttribute("data","Hello World!!!");
        return "index";
    }

}

复制代码

这里千万别写RestController,否则会报错的。这里在request中,设置了data为Hello World!!!,启动项目查看效果:

这已经表明,SpringBoot配置FreeMark已经成功了。

FreeMark常用用法

取值
代码语言:javascript
复制
${user}
如果需要取对象里的某个属性,则使用"."即可
${user.name}
复制代码
遍历
代码语言:javascript
复制
<#list list as item>
	${item.name}
</#list>

<#list ["星期一", "星期二", "星期三"] as day>
	${day}
</#list>
复制代码
条件
代码语言:javascript
复制
<#if username == "boss">
	Hi boss!
</#if>

<#if username == "boss">
	Hi boss!
<#else>
	Hi!
</#if>
复制代码
设置默认值

如果没有默认值,FreeMark会报错

代码语言:javascript
复制
${varname!default_value}
复制代码
日期格式化
代码语言:javascript
复制
${date?string("yyyy-MM-dd HH:mm:ss")}

复制代码

用法有很多,这里没法一一列举出来。只能列举出比较常用的。这些东西没必要去记住它,可以在需要的时候去查一下文档即可。

总结

本文介绍了SpringBoot整合FreeMark的方法。虽然现在主流是前后端分离开发和部署,但是在某些时候,或者说一些小项目中,还是有可能用到后端渲染页面的情况的。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年06月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • springboot引入FreeMark
  • FreeMark常用用法
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档