Web开发人员必会的模板引擎技术之Fre

曾几何时,Web开发是个多么高大上的名字,程序猿们都以能搞定Web技术为荣,此时还没有前后端之说。然而随着互联网的发展,社会分工进一步细化,职业岗位也更加细分,慢慢开始有了前端攻城狮和后端攻城狮,技术也进一步细分,出现了以HTML、JS等为主的页面技术,以Java、Pyton为主的后端开发语言技术。

事实上,直到前后端分离开发模式已经逐渐成为主流的今天,前后端技术的划分也没能完全清晰,我们可能会经常听到一个叫全栈工程师的名字,这是一类野心极其大想前后端通吃的程序猿,这是要逼着其他程序猿回家种地的节奏,程序猿没有女朋友已经够惨了,还要这样伤害这些单纯可爱的人吗?

大家都是程序猿,本自同根生,相煎何太急。

全栈工程师其实就是前端和后端技术都会的一类人,而这类人基本都是后端工程师;为什么这么说呢,以Java工程师为例,哪个Java工程师不会HTML、JS呢,否则会被人鄙视的;甚至经验丰富的老司机比真正前端工程师还要精通。Web开发本身就是后端工程师的一部分工作。比如,在JavaWeb开发领域程序猿通常是既写前端代码,也写后端代码;而且Web开发有着很多很优秀的页面技术HTML、JSP等。这些优秀的页面技术,使Java在Web开发领域有着举足轻重的地位。

咱们今天要学习的也是一个在Java开发领域非常流行的模板引擎技术-Freemarker,用过SpringBoot的同学可能都知道,SpringBoot在自己体系里默认支持的页面技术不是JSP,而是Thymleaf、Freemarker的模板引擎技术。所以,今天咱们就先来学习一下其中的一个,使用Freemarker模板引擎技术做Web开发。

那么问题来了,咱们一直在说模板引擎技术,那什么是模板引擎呢?接下来咱们先来了解一下模板引擎技术。

什么是模板引擎技术

传统的页面开发过程中通常采用的HTML+JS技术,而现在大部分网站都采用标签化+模块化的设计。模板引擎其实就是根据这种方式,使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档在原有的HTML页面中来填充数据。最终达到渲染页面的目的。

说人话就是,把数据和页面整合在一起的技术。

常用的模板引擎技术:

  Thymleaf

  FreeMarker

  Velocity

今天咱们就来先学习Freemarker。

什么是FreeMarker

咱们先来介绍下Freemarker的概念,FreeMarker是一个使用纯Java编写的基于模板生成文本输出的通用工具,通常它的文件都是.ftl结尾,FreeMarker最初被用在MVC模式的Web开发框架中生成HTML页面,但是它的功能可不仅仅可以用到Web开发生成模板文件,它也可以用于非Web应用环境中,如:生成Java代码。

FreeMarker的主要特点

既然Freemarker模板技术是SpringBoot官方默认支持的,那么它有哪些特点,才如此的备受青睐呢?

  轻量级

不像JSP那样是Servlet要嵌入到应用程序中

  可以生成各种文本文件

如:html、xml、java等

  学习成本低

因为是用java编写的,所以语法和java很像

好了,接下来我们来看看SpringBoot整合Freemarker的实战操作。

Freemarker渲染Web页面

首先,添加pom依赖,我们使用SpirngBootInitializr创建SpringBoot基础工程(记得加上Web依赖,因为我是搞Web开发),按照我们的经验,在SpringBoot中如果想要集成什么技术只需要添加相关技术的依赖就可以,所以呢,这里我们就直接添加FreeMarker的依赖。

当然你也可以在创建项目时直接勾选需要的依赖,项目在创建完成的时候自动加上这个依赖,如下图:

添加FreeMarker相关属性配置

创建好工程之后,在application.properties文件中添加FreeMarker相关配置。

创建页面

这里需要注意的是freemarker的文件名是以.ftl后缀的,我们在resources\templates文件夹下创建freemarker.ftl文件,需要注意的是freemarker在取值的时候使用的是插值表达式。

创建Controller

这里需要注意,在写controller的时候,我们使用注解是

Controller,因为我们要跳转到html页面,不在是返回JSON数据了。

测试结果

最后启动SpirngBoot工程,在浏览器地址栏中输入下方地址就可以啦。

效果如下:

好了,通过以上简单的几步就可以轻松实现SpringBoot整合FreeMarker模板引擎技术进行web开发了,是不是很激动呢?

怎么样,你了解了么?欢迎和我们一起探讨。

更多IT技术干货,请


转载请注明:http://www.aierlanlan.com/rzgz/4257.html