热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【SpringBoot笔记05】SpringBoot集成JSP、Thymeleaf、Freemarker三种常见的视图模板

这篇文章,主要介绍SpringBoot框架如何集成JSP、Thymeleaf、Freemarker三种常见的视图模板。目录一、SpringBoot集成JSP1.1

这篇文章,主要介绍SpringBoot框架如何集成JSP、Thymeleaf、Freemarker三种常见的视图模板。


目录

一、SpringBoot集成JSP

1.1、引入JSP依赖

1.2、配置视图前后缀

1.3、创建index.jsp文件

1.4、创建控制器

1.5、添加pom编译目录设置

1.6、运行测试

二、SpringBoot集成Thymeleaf

2.1、引入Thymeleaf依赖

2.2、创建index.html页面

2.3、编写控制器

2.4、运行测试

2.5、添加thymeleaf配置信息

三、SpringBoot集成Freemarker

3.1、引入Freemarker依赖

3.2、创建index.ftlh页面

3.3、编写控制器

3.4、运行测试

3.5、添加Freemarker配置信息



JSP、Thymeleaf、Freemarker三个是非前后端分离模式下,最常见的三种视图技术,一个项目中只需要使用一种视图技术就可以啦,没必要集成多个视图模板,下面就分别介绍SpringBoot如何集成JSP、Thymeleaf、Freemarker视图模板。

PS:首先我们创建一个最基本的SpringBoot工程,引入spring-boot-starter-parent、spring-boot-starter-web依赖。


一、SpringBoot集成JSP


1.1、引入JSP依赖

在springboot工程中,引入三个依赖,分别是:servlet-api、jstl、jasper

javax.servletjavax.servlet-apiprovidedjavax.servletjstlorg.apache.tomcat.embedtomcat-embed-jasper

1.2、配置视图前后缀

在springboot工程中的【application.yml】配置文件里面,添加视图配置信息,如下所示:

# 设置 JSP 视图
spring:mvc:view:prefix: /WEB-INF/views/ # 设置视图前缀名称suffix: .jsp # 设置视图文件后缀名称

注意:我们需要创建【prefix】前缀的相关目录,这个目录就是用于存放jsp文件的位置。



1.3、创建index.jsp文件

【src/main/webapp】目录下面,创建【/WEB-INF/views】目录,然后新建一个【index.jsp】文件。


注意:JSP文件需要放在webapp目录里面,才能够被SpringBoot框架访问到。


如下图所示:

jsp文件:

<%@ page cOntentType="text/html;charset=UTF-8" pageEncoding="UTF-8" language="java" %>





SpringBoot集成JSP




1.4、创建控制器

创建一个【TestController】控制器类,编写一个访问【index.jsp】页面的方法。

package com.spring.boot.demo.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;/*** @author ZhuYouBin* @version 1.0.0* @Date: 2022/10/19 22:23* @Description*/
@Controller
@RequestMapping("/api")
public class TestController {@GetMapping("/index")public String index() {// 这里 SpringBoot 框架会将 application.yml 配置文件中的// prefix、suffix 的值,和视图名称拼接起来,如下:// prefix + "/" + index + "/" + suffix// 例如: ”/WEB-INF/views/index.jsp“return "index";}}

1.5、添加pom编译目录设置

SpringBoot框架,集成JSP之后,默认是将jsp资源放在【META-INF/resources】目录下面的,是以我们需要在pom.xml文件里面,添加打包编译的资源路径设置,如下所示:

src/main/webappMETA-INF/resources**/*.*

注意:一定要添加这个,一定要添加这个,一定要添加这个,不然启动的时候,访问会出现404。


添加上面的编译打包路径之后,当我们使用maven打包之后的目录结果就如下所示:


1.6、运行测试

到这里,SpringBoot集成JSP视图技术就基本上结束啦,下面启动工程,访问一下控制器【http://localhost:8080/api/index】,看是否能够成功访问到【index.jsp】页面。

到这里,SpringBoot集成JSP就结束啦,目前JSP的使用不是太多了,下面推荐两个更加好用的模板视图组件。




二、SpringBoot集成Thymeleaf

Thymeleaf是一款模板引擎,SpringBoot框架已经给我们提供了一个Thymeleaf的starter启动器,我们只需要引入这个starter启动器,就能够快速的集成Thymeleaf模板,下面具体介绍。


2.1、引入Thymeleaf依赖


org.springframework.bootspring-boot-starter-thymeleaf

2.2、创建index.html页面

在引入thymeleaf依赖之后,其实我们就已经可以使用thymeleaf,因为SpringBoot已经替我们默认配置好了thymeleaf相关属性,我们只需要在【src/main/resources】目录下,创建一个【templates】目录,然后新建一个【index.html】页面即可,如下图所示。

页面代码如下:





SpringBoot集成Thymeleaf




2.3、编写控制器

@Controller
@RequestMapping("/api")
public class TestController {@GetMapping("/index")public String index() {// SpringBoot 会去 templates 目录下面,找到叫做 index 的文件return "index";}}

2.4、运行测试

启动工程,打开浏览器,访问【http://127.0.0.1:8080/api/index】即可,出现下面界面,就表示thymeleaf集成成功啦。


2.5、添加thymeleaf配置信息

虽然SpringBoot默认给我们添加了thymeleaf的相关配置,但是一般实际开发里面,我们都会自己手动的声明Thymeleaf的配置,这个时候,我们只需要在【application.yml】配置文件里面,添加【spring.thymeleaf】为前缀的属性即可。

# thymeleaf 相关配置
spring:thymeleaf:prefix: classpath:/templates/ # 定义静态资源存放目录suffix: .html # 定义静态资源文件的后缀名称encoding: UTF-8 # 文件编码字符集mode: HTML # 模板文件类型cache: false # 是否开启静态资源缓存check-template: true # 渲染模板之前,是否检查模板文件是否存在check-template-location: true # 是否检查模板目录是否存在

SpringBoot中thymeleaf的相关配置属性有如下图所示:

到这里,SpringBoot框架集成Thymeleaf模板引擎就完成啦,之后就是在项目中使用thymeleaf相关的语法,进行页面数据的渲染和展示咯。




三、SpringBoot集成Freemarker

Freemarker和Thymeleaf有点类似,两者都是一个模板引擎,都能够用于渲染页面,只不过语法渲染页面的语法有一些不同,下面具体介绍如何集成Freemarker。


3.1、引入Freemarker依赖

SpringBoot也给我们提供了一个Freemarker的starter启动器,使用的时候直接引入starter启动器即可(和SpringMVC集成Freemarker对比,SpringBoot给我们省去了不少的步骤)。


org.springframework.bootspring-boot-starter-freemarker

3.2、创建index.ftlh页面

SpringBoot框架也默认给我们配置好了Freemarker模板引擎,默认情况下,freemarker模板文件是存放在【src/main/resources】目录中的【templates】目录,并且文件后缀名称默认是【.ftlh】,所以,我们在templates目录下面创建一个【index.ftlh】文件,如下图所示。

具体代码如下:





SpringBoot集成Freemarker




3.3、编写控制器

@Controller
@RequestMapping("/api")
public class TestController {@GetMapping("/index")public String index() {// SpringBoot 会去 templates 目录下面,找到叫做 index 的文件return "index";}}

3.4、运行测试

启动工程,打开浏览器,访问【http://127.0.0.1:8080/api/index】即可,出现下面界面,就表示Freemarker集成成功啦。


3.5、添加Freemarker配置信息

同样的,实际开发里面也喜欢将Freemarker的相关配置手动的配置到application.yml文件里面。

# freemarker 相关配置
spring:freemarker:template-loader-path: classpath:/templates/ # 存放模板文件的目录suffix: .ftl # 文件名称的后缀,一般都是设置成 .ftlcharset: UTF-8 # 编码字符集check-template-location: true # 是否检查模板目录是否存在
# prefix: # 文件名称的前缀

SpringBoot中Freemarker的相关配置属性如下图所示:

到这里,SpringBoot框架集成Freemarker模板引擎就完成啦,之后就是在项目中使用Freemarker相关的语法,进行页面数据的渲染和展示咯。


综上,这篇文章结束了,主要介绍SpringBoot框架如何集成JSP、Thymeleaf、Freemarker三种常见的视图模板。



推荐阅读
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
author-avatar
頃刻想詤嗳伱kYU-2001
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有