内容简介:虽然现在流行前后端分离开发和部署,但是有时候还是需要用到服务端渲染页面的。比如:需要考虑到SEO优化等问题的时候,FreeMark其实还是很有作用的。本人的博客本来是用React开发的,但是后来发现搜索引擎难以收集由JS渲染的页面,所以前段时间,是用jQuery+FreeMark重写了我的博客前端页面。感兴趣的朋友,可以点击下面的查看更多的链接跳转至本人的博客。在springboot中,不推荐使用JSP(其实任何项目都不推荐使用JSP),而是推荐使用模板引擎,如FreeMark。其实使用模板引擎替代jsp的
虽然现在流行前后端分离开发和部署,但是有时候还是需要用到服务端渲染页面的。比如:需要考虑到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的方法。虽然现在主流是前后端分离开发和部署,但是在某些时候,或者说一些小项目中,还是有可能用到后端渲染页面的情况的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- SpringBoot2 整合FreeMarker模板,完成页面静态化处理
- Spring Boot 2 整合 FreeMarker 模板,完成页面静态化处理
- SpringBoot整合MybatisPlus的简单教程(简单整合)
- springmvc教程--整合mybatis开发(spring+springMVC+mybatis整合开发)
- springboot整合springsecurity从Hello World到源码解析(五):springsecurity+jwt整合restful服务
- 网站模板 | 现代时尚创新创意投资组合HTML5模板设计
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Just My Type
Simon Garfield / Profile Books / 2010-10-21 / GBP 14.99
What's your type? Suddenly everyone's obsessed with fonts. Whether you're enraged by Ikea's Verdanagate, want to know what the Beach Boys have in common with easy Jet or why it's okay to like Comic Sa......一起来看看 《Just My Type》 这本书的介绍吧!