SpringBoot怎么整合Thymeleaf与FreeMarker视图层技术(freemarker,springboot,thymeleaf,开发技术)

时间:2024-05-04 08:13:47 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

这篇文章主要介绍“SpringBoot怎么整合Thymeleaf与FreeMarker视图层技术”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot怎么整合Thymeleaf与FreeMarker视图层技术”文章能帮助大家解决问题。

整合Thymeleaf

Thymeleaf是新一代Java模板引擎,类似于Velocity、FreeMarker等传统Java模板引擎。与传统Java模板引擎不同的是,Thymeleaf支持HTML原型,既可以让前端工程师在浏览器中直接打开查看样式,也可以让后端工程师结合真实数据查看显示效果。同事,Spring Boot提供了Thymeleaf自动化配置解决方案,因此在Spring Boot中使用Thymeleaf 非常方便。Spring Boot整合Thymeleaf 主要可通过如下步骤

1. 创建工程添加依赖

新建一个Spring Boot工程,然后添加spring-boot-starter-web 和spring-boot-starter-thymeleaf 依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--整合Thymeleaf--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>

2. 配置Thymeleaf

Spring Boot为Thymeleaf提供了自动化配置类ThymeleafAutoConfiguration,相关的配置属性在ThymeleafProperties 类中,ThymeleafProperties类部分源码如下:

@ConfigurationProperties(prefix="spring.thymeleaf")publicclassThymeleafProperties{ privatestaticfinalCharsetDEFAULT_ENCODING=StandardCharsets.UTF_8; publicstaticfinalStringDEFAULT_PREFIX="classpath:/templates/"; publicstaticfinalStringDEFAULT_SUFFIX=".html";}

由此配置可以看到,默认的模板位置在classpath:/templates/,默认的模板后缀名为.html。如果使用IDEA创建Spring Boot 项目,templates文件夹默认会创建。如需对默认的Thymeleaf 配置参数进行自定义配置,可以在application.properties 中进行配置,部分常见配置如下:

#是否开启缓存,开发时可设置为false,默认为true
spring.thymeleaf.cache=false
#检查模版是否存在,默认为true
spring.thymeleaf.check-template=true
#检查模版位置是否存在,默认为true
spring.thymeleaf.check-template-location=true
#模版文件编码
spring.thymeleaf.encoding=UTF-8
#模版文件位置
spring.thymeleaf.prefix=classpath:/templates/
#Content-Type配置
spring.thymeleaf.servlet.content-type=text/html
#模版文件后缀
spring.thymeleaf.suffix=.html

3. 配置控制器

创建Book实体类,然后在Controller中返回ModelAndView,如下:

publicclassBook{privateintid;privateStringname;privateStringauthor;publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicStringgetAuthor(){returnauthor;}publicvoidsetAuthor(Stringauthor){this.author=author;}}
@RestControllerpublicclassBookController{@GetMapping(value="/books")publicModelAndViewbooks(){List<Book>books=newArrayList<>();Bookb1=newBook();b1.setId(1);b1.setAuthor("唐家三少");b1.setName("斗罗大陆Ⅰ");Bookb2=newBook();b2.setId(2);b2.setAuthor("唐家三少");b2.setName("斗罗大陆Ⅱ");books.add(b1);books.add(b2);ModelAndViewmodelAndView=newModelAndView();modelAndView.addObject("books",books);modelAndView.setViewName("books");returnmodelAndView;}}

4. 创建视图

在resources目录下的templates目录中创建books.html,如下:

<!DOCTYPEhtml><htmllang="en"xmlns:th="http://www.thymeleaf.org"><head><metacharset="UTF-8"><title>图书列表</title></head><body><tableborder="1"><tr><td>图书编号</td><td>图书名称</td><td>图书作者</td></tr><trth:each="book:${books}"><tdth:text="${book.id}"></td><tdth:text="${book.name}"></td><tdth:text="${book.author}"></td></tr></table></body></html>

代码解释:

  • 首先在第二行导入Thymeleaf 的名称空间

  • 通过遍历将books中的数据展示出来,Thymeleaf中通过th:each进行集合遍历,通过th:text展示数据

5. 运行

浏览器输入"http://localhost:8081/books",查看运行结果,如图:

SpringBoot怎么整合Thymeleaf与FreeMarker视图层技术

整合FreeMarker

FreeMarker 是一个非常古老的模板引擎,可以用在Web环境或者非Web环境中。FreeMarker 需要经过解析才能在浏览器中展示出来。FreeMarker 不仅可以用来配置HTML页面模板,也可以作为电子邮件模板、配置文件模板以及源码模板。整合步骤如下:

1. 创建项目添加依赖

创建Spring Boot项目,然后添加spring-boot-starter-web和spring-boot-starter-freemarker依赖,如下:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--整合FreeMarker--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency>

2. 配置FreeMarker

Spring Boot对FreeMarker 也提供了自动化配置类FreeMarkerAutoConfiguration,相关的配置属性在FreeMarkerProperties中,FreeMarkerProperties的部分源码如下:

@ConfigurationProperties(prefix="spring.freemarker")publicclassFreeMarkerPropertiesextendsAbstractTemplateViewResolverProperties{ publicstaticfinalStringDEFAULT_TEMPLATE_LOADER_PATH="classpath:/templates/"; publicstaticfinalStringDEFAULT_PREFIX=""; publicstaticfinalStringDEFAULT_SUFFIX=".ftl";...}

FreeMarker 默认模板位置和Thymeleaf 一样,都在classpath:/templates/中,默认文件后缀是.ftl,开发者可以在application.properties 中对这些默认配置进行修改,如下:

3. 控制器

控制器和Thymeleaf 中的控制器一样,这里不再重复

4. 创建视图

在resources目录下的templates目录中创建books.ftl 文件,如下:

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>图书列表FreeMarker</title></head><body><tableborder="1"><tr><td>图书编号</td><td>图书名称</td><td>图书作者</td></tr><#ifbooks??&&(books?size>0)><#listbooksasbook><tr><td>${book.id}</td><td>${book.name}</td><td>${book.author}</td></tr></#list></#if></table></body></html>

代码解释:

先判断model中的books部位可控并且books中有数据,然后再进行遍历

5. 运行

浏览器输入"http://localhost:8081/books",查看运行结果,如图:

SpringBoot怎么整合Thymeleaf与FreeMarker视图层技术

关于“SpringBoot怎么整合Thymeleaf与FreeMarker视图层技术”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

本文:SpringBoot怎么整合Thymeleaf与FreeMarker视图层技术的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:vue进入页面加载数据缓慢怎么实现loading提示过程下一篇:

10 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18