「快学springboot」SpringBoot整合freeMark模板引擎
前言
虽然现在流行前后端分离开发和部署,但是有时候还是需要用到服务端渲染页面的。比如:需要考虑到SEO优化等问题的时候,FreeMark其实还是很有作用的。本人的博客本来是用React开发的,但是后来发现搜索引擎难以收集由JS渲染的页面,所以前段时间,是用jQuery+FreeMark重写了我的博客前端页面。感兴趣的朋友,可以点击下面的查看更多的链接跳转至本人的博客。
在springboot中,不推荐使用JSP(其实任何项目都不推荐使用JSP),而是推荐使用模板引擎,如FreeMark。其实使用模板引擎替代jsp的好处有很多,比如:FreeMark不需要便已成为class,避免了内存溢出的可能性,等等。好处有很多,这里就不深入探讨了。
springboot引入FreeMark
引入依赖:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
配置FreeMark:
# 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
<!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
@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常用用法
取值
${user}
如果需要取对象里的某个属性,则使用"."即可
${user.name}
遍历
<#list list as item>${item.name}
</#list><#list ["星期一", "星期二", "星期三"] as day>${day}
</#list>
条件
<#if username == "boss">Hi boss!
</#if><#if username == "boss">Hi boss!
<#else>Hi!
</#if>
设置默认值
如果没有默认值,FreeMark会报错
${varname!default_value}
日期格式化
${date?string("yyyy-MM-dd HH:mm:ss")}
用法有很多,这里没法一一列举出来。只能列举出比较常用的。这些东西没必要去记住它,可以在需要的时候去查一下文档即可。
总结
本文介绍了SpringBoot整合FreeMark的方法。虽然现在主流是前后端分离开发和部署,但是在某些时候,或者说一些小项目中,还是有可能用到后端渲染页面的情况的。
转载于:https://www.cnblogs.com/happy4java/p/11206521.html
「快学springboot」SpringBoot整合freeMark模板引擎相关推荐
- 「快学springboot」SpringBoot多环境配置文件
[原创] Happyjava 2019-06-18 07:01:00 往期文章 「快学Docker」Docker简介.安装和Hello World实现 「快学springboot」使用springbo ...
- 「雕爷学编程」Arduino动手做(15)——手指侦测心跳模块
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
- 【Springboot】SpringBoot基础知识及整合Thymeleaf模板引擎
文章目录 SpringBoot简介 SpringBoot是什么 为什么要学习SpringBoot SpringBoot的优势 学习SpringBoot前要具备的基础 创建第一个SpringBoot项目 ...
- SpringBoot整合Thymeleaf模板引擎以及静态资源的访问
SpringBoot整合Thymeleaf模板引擎静态资源访问的配置 Thymeleaf是一个现代服务器端Java模板引擎,适用于Web和独立环境,能够处理HTML,XML,JavaScript,CS ...
- python的输入函数是什么意思_「小白学Python」像风一样自由的输入:input( )函数详解...
从使用Python写出第一行代码:print("Hello Python")时,我就怀揣着一个梦想,有一天,我一定要输入自己想要的内容.今天这个梦想终于实现了,多亏了input( ...
- python中字符型用什么表示_「小白学Python」Python中最常用的数据类型:字符串
Python中有6个标准数据类型,分别是:Number(数值).String(字符串).List(列表).Tuple(元组).Sets(集合).Dictionary(字典). 其中,String(字符 ...
- CodeIgniter_2.2.0整合smarty模板引擎
CodeIgniter_2.2.0整合smarty模板引擎 转载于:https://blog.51cto.com/murongwenxian/1605204
- Spring Boot整合Thymeleaf模板引擎
转载自 Spring Boot整合Thymeleaf模板引擎 什么是Thymeleaf Thymeleaf是一款用于渲染XML.XHTML.HTML5内容的模板引擎.类似Velocity,FreeMa ...
- springboot做网站_SpringBoot项目实战(3):整合Freemark模板
SpringBoot 自动继承了thymeleaf.freemark.velocity三种模板技术,因为我项目中需要用来Freemark模板进行生成Java类所以,就整合了SB+F. 另外有一点说明下 ...
最新文章
- gomarket服务器位置,ANZHI安智市场 Gomarket
- python标准库的基本使用
- zhuan zai suffix tree
- 深度学习之基于卷积神经网络实现服装图像识别
- 怎样查看cudnn版本_tensorflowGPU版本踩坑记录
- 高效分页的SQL技巧(以Oracle为例)
- Duilib自定义控件
- iframe中的右键 禁止_网站排名优化中必须要注意的事项
- tomcat无法正常shutdown
- git fatal: Authentication failed for ‘https://gitee.com
- python卸载包-Python 包 卸载方法
- python的repl模式_ESP32学习4-烧录MicroPython并使用REPL
- 基于arduino的灯光控制(easy版)
- android开发工具类之获得WIFI IP地址或者手机网络IP
- C#实现Gauss完全主元消去法
- 运维自我提升:怎样做好企业 IT 运维工作
- android 模拟器 驱动,【新手指导】模拟器报错列表及解决办法!
- HDU 5238 Calculator(中国剩余定理+线段树)
- (笔记整理)公司vue平台用到redis,相关概念与登录(11)
- 3D游戏设计-牧师与魔鬼_动作分离版
热门文章
- 浅谈矩阵分解在推荐系统中的应用
- Activiti Workflow HelloWorld 示例与测试环境搭建
- mysql启动日志指令_简单整理MySQL的日志操作命令
- servlet和action中获取URL中的汉字(解决URL中汉字为乱码的问题) .
- data spring 指定时区_今天的工作内容:Spring Boot 2.X整合Spring-cache
- 转载:AD的授权还原和主还原:深入浅出Active Directory系列(六)
- HTML里face作用,html5 – @ font-face在子文件夹中的字体时不起作用
- php 5.5 sqlserver,thinkphp5 连接sqlserver windows
- mysqli_connect参数的写法以及如何设置特定端口
- 游戏开发经验分享:我所理解的打击感