手记

SpringBoot项目实战(3):整合Freemark模板

SpringBoot 自动继承了thymeleaf、freemark、velocity三种模板技术,因为我项目中需要用来Freemark模板进行生成Java类所以,就整合了SB+F。

另外有一点说明下, 可能有人说用模板引擎对性能有一定影响,另外现在的趋势都是前后端完全分离,通过诸如Angular、jQuery等前端框架与后台进行数据交互。虽然说得不错,但是!....如果项目分前台后台,并且不想用模板的话建议只在后台玩玩就行了,如果是开发网站前台的话, 还是建议老老实实的用模板或者纯静态页面等。 究其原因,现在做网站做优化都是针对于搜索引擎(比如百度引擎、360引擎、Google引擎等)的,想要的结果就是能被搜索引擎快速收录,因为引擎收录的越多,则展现到用户面前的机会就越多流量也就越多(流量 === 金钱)。但是前后端完全分离通过Ajax、Pjax与后台进行数据交互的页面对搜索引擎来说是不友好的,可能对收录有影响,收录少≈用户少,用户少≈流量少,流量少===网站会入不敷出,入不敷出≈破产,破产≈找不到女朋友,找不到女朋友===单身狗

跑偏了,吧啦吧啦这么多只是想说明,目前来说在搜索引擎对Ajax还不是太友好的前提下,为保证流量尽量使用模板或实现纯静态。

继续...

1.配置pom文件,引入Freemarker

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

2.配置模板属性(application.properties)

# FREEMARKER (FreeMarkerAutoConfiguration)
spring.freemarker.allow-request-override=false
spring.freemarker.allow-session-override=false
spring.freemarker.cache=false
spring.freemarker.charset=UTF-8
spring.freemarker.check-template-location=true
spring.freemarker.content-type=text/html
spring.freemarker.enabled=true
spring.freemarker.expose-request-attributes=false
spring.freemarker.expose-session-attributes=false
spring.freemarker.expose-spring-macro-helpers=true
spring.freemarker.prefer-file-system-access=true
# 这是重点, 会过滤.ftl后缀的文件
spring.freemarker.suffix=.ftl
# spring boot 默认的页面模板存放目录
spring.freemarker.template-loader-path=classpath:/templates/
spring.freemarker.settings.template_update_delay=0
spring.freemarker.settings.default_encoding=UTF-8
spring.freemarker.settings.classic_compatible=true
spring.freemarker.order=1

3.编写Controller

@RequestMapping("/hello/{name}")
public String hello(@PathVariable("name") String name, Model model) {
   model.addAttribute("name", name);
   model.addAttribute("age","25");
   model.addAttribute("sex","man");
   model.addAttribute("birth",new Date());
   return "hello";
}

4.编写ftl页面模板

<!DOCTYPE html>
<html lang="en">
<head>
    <title>SpringBoot + Freemarker</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
Hello ${name}${age}${sex}
<p>${birth?string("yyyy-MM-dd HH:mm:ss.sss")}</p>
</body>
</html>

5.启动Application、访问hello/{name}

THE END!

下一节:集成Mybatis

最后的最后,在呼吁一下:

这个标签该更新一下了,这篇文章的标签我居然不知道该选什么...Spring没有,Spring Boot也没有,Maven更没有。

Github源码 - SpringBoot多模块项目

我可以对一个人无限的好,前提是值得。 ——慕冬雪

23人推荐
随时随地看视频
慕课网APP

热门评论

收录少≈用户少,用户少≈流量少,流量少===网站会入不敷出,入不敷出≈破产,破产≈找不到女朋友,找不到女朋友===单身狗!

我就是想知道收录少单身狗有什么关系?

收录少≈用户少,用户少≈流量少,流量少===网站会入不敷出,入不敷出≈破产,破产≈找不到女朋友,找不到女朋友===单身狗!

我就是想知道收录少单身狗有什么关系?

使用thymeleaf模版的时候,虽然能正常使用,但是总是有这样的告警,请问怎么解决

而且这是个error,作为强迫症有点受不了

http://img.mukewang.com/594dec570001762e05120125.jpg

查看全部评论