Springboot模板引擎

SpringBoot系列:Spring Boot使用模板引擎FreeMarker 可能有人会问我为什么愿意去花时间帮助大家实现求职梦想,因为我一直坚信时间是可以复制的。我牺牲了自己的大概十个小时写了这片文章,换来的是成千上万的求职者节约几天甚至几周时间浪费在无用的资源上。上面的这些(算法与数据结构)+(Java多线程学习手册)+(计算机网络顶级教程)等学习资源《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!上面的这些(算法与数据结构)+(Java多线程学习手册)+(计算机网络顶级教程)等学习资源。 阅读详情

springboot之thymeleaf模板

在开发前建议把缓存关闭
在配置文件application.properties文件修改(我改为了yml文件)

spring.thymeleaf.cache=false

在这里插入图片描述
正式环境还是要将缓存开启的

Thymeleaf相当于html页面

相关pom依赖
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

在这里插入图片描述
在这里插入图片描述
使用ModelAndView
在这里插入图片描述

模板语法

页面加入<html xmlns:th="http://www.thymeleaf.org">
controller层UserController

package com.hsl.springboot01.controller;

import com.hsl.springboot01.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.util.ArrayList;
import java.util.List;

/**
 * @author water
 * @site www.water.com
 * @company xxx公司
 * @create 2019-12-28 16:45
 * <p>
 * thymeleaf的应用
 */
@Controller
@RequestMapping("/thymeleaf")
public class UserController {

    @RequestMapping("/users1")
    public String users1() {
        System.out.println("且歌且行且牵挂");
        return "users1";
    }

    @RequestMapping("/users2")
    public ModelAndView users2() {
        ModelAndView mv = new ModelAndView();
        mv.addObject("title","用户列表");
        List list=new ArrayList();
        list.add(new User(1,"water1","女",19));
        list.add(new User(2,"water2","女",19));
        list.add(new User(3,"water3","女",19));
        mv.addObject("users",list);
        //html转义
        mv.addObject("msg","<span style='color:red'> 优秀员工师water1</span>");
        mv.setViewName("users1");

//        System.out.println("隔花隔木隔慧之");
        return mv;
    }
}

html页面:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>thymeleaf应用</title>
</head>
<body>
<!--thymeleaf应用-->
<h1>thymeleaf语法</h1>
<!--<h3 th:text="${title}"></h3>-->

<table border="1" cellpadding="0" cellspacing="0" width="600px" style="text-align: center" align="center">
    <caption th:text="${title}"></caption>
    <tr>
        <th>员工ID</th>
        <th>员工姓名</th>
        <th>员工性别</th>
        <th>员工年龄</th>
    </tr>
    <tr th:each="u : ${users}">
        <td th:text="${u.uid}"></td>
        <td th:text="${u.uname}"></td>
        <td th:text="${u.sex}"></td>
        <td th:text="${u.age}"></td>
    </tr>
</table>
<p th:utext="${msg}"></p>
</body>
</html>

在这里插入图片描述

thymeleaf包含公共区域的方案

创建common.html

<div th:fragment="h1">
人生似水岂无涯
</div>
<div th:fragment="h2">
    浮云吹作雪
</div>
<div th:fragment="h3">
   世味煮成茶
</div>

页面添加代码:

<!--thymeleaf包含公共区域的方案-->
包整体
<div th:include="common.html"></div>
<hr>
包三部分
<div th:replace="common::h3"></div>
<hr>
包二三部分
<div th:replace="common::h1"></div>
<div th:replace="common::h3"></div>

在这里插入图片描述

springboot之freemarker模板

配置ftl文件

一开始我们新建freemarker.ftl文件师是找不到的
需要在setting配置一下
在这里插入图片描述
在这里插入图片描述
当然我们也可以不配置,只要创建html5文件,把后缀名改成ftl就可以了

应用

导入pom依赖

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

编译可能需要的代码,可以不加


<!--可以不加,但是做项目的时候可能会用-->
 <resources>
            <!--解决mybatis-generator-maven-plugin运行时没有将XxxMapper.xml文件放入target文件夹的问题-->
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <!--freemarker模板也读取需要注释标红地方-->
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <!--<include>*.properties</include>-->
                    <!--<include>*.xml</include>-->
                    <!--<include>*.yml</include>-->
                </includes>
            </resource>
        </resources>

yml文件配置

server:
  port: 80
  servlet:
    context-path: /

spring:
  thymeleaf:
    cache: false

  freemarker:
    # 设置模板后缀名
    suffix: .ftl
    # 设置文档类型
    content-type: text/html
    # 设置页面编码格式
    charset: UTF-8
    # 设置页面缓存
    cache: false
    # 设置ftl文件路径,默认是/templates,为演示效果添加role
    template-loader-path: classpath:/templates/role
  mvc:
    static-path-pattern: /static/**


创建ftl文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>freemarker应用</title>
</head>
<body>
<h2>取值</h2>
<h3>提供默认值</h3>
<#--避免出现日常-->
welcome 【${name!'未知'}】 to freemarker!

<h3>exists用在逻辑判断</h3>
<#if name?exists>
    ${name}
</#if>

<h2>条件</h2>
<#if sex=='girl'>
		女
<#elseif sex=='boy'>
		男
<#else>
		保密
</#if>

<h2>循环</h2>
<table border="1px" width="600px">
    <thead>
    <tr>
        <td>ID</td>
        <td>角色名</td>
        <td>职业</td>
    </tr>
    </thead>
    <tbody>
    <#list roles as role>
    <tr>
        <td>${role.rid}</td>
        <td>${role.rname}</td>
        <td>${role.rtype}</td>
    </tr>
    </#list>
    </tbody>
</table>

<h2>include</h2>
<#include 'foot.ftl'>

<h2>局部变量(assign)/全局变量(global)</h2>
<#--获取项目名-->
 <#assign ctx1>
     ${springMacroRequestContext.contextPath}
 </#assign>

<#global ctx2>
    ${springMacroRequestContext.contextPath}
</#global>

${ctx1}和${ctx2}

</body>
</html>

controller层RoleController

package com.hsl.springboot01.controller;

import com.hsl.springboot01.entity.Role;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.util.ArrayList;
import java.util.List;

/**
 * @author water
 * @site www.water.com
 * @company xxx公司
 * @create 2019-12-28 20:23
 *
 * freemarker应用
 */
@Controller
@RequestMapping("/freemarker")
public class RoleController {
    @RequestMapping("/roles")
    public ModelAndView roles() {
        ModelAndView mv = new ModelAndView();
        List list=new ArrayList();
        mv.addObject("name","一叶之秋");
        mv.addObject("sex","gay");

        list.add(new Role(1,"君莫笑","散人"));
        list.add(new Role(2,"包子入侵","流氓"));
        list.add(new Role(3,"沐雨橙风","枪炮师"));
        mv.addObject("roles",list);
        mv.setViewName("role");
        return mv;
    }
}

【SpringBoot】3、SpringBoot中整合Thymeleaf模板引擎 SpringBoot 为我们提供了 Thymeleaf 自动化配置解决方案,所以我们在 SpringBoot 中使用 Thymeleaf 非常方便 一、简介 Thymeleaf是一个流行的模板引擎,该模板引擎采用Java语言开发,模板引擎是一个技术名词,是跨领域跨平台的概念,在Java语言体系下有模板引擎,在C#、PHP语言体系下也有模板引擎。除了thymeleaf之外还有Velocity、Fr... 阅读详情

相关推荐

springboot项目实战-使用thymeleaf模板引擎

Spring Boot对Web开发流程提供完整的支持,包括从前端到后台的开发,再到数据库的操作。使用Spring Boot开发Web工程有两种类型:前后端完全分离。这种方式是前端开发者和后端开发者完全分离地进行项目的开发,最后完成前后端的接口对接,这是目前国内一种流行的开发方式。前端负责页面的开发并调用后端接口展示数据,后端只负责提供API接口。使用Spring Boot自带的模板。这种方式适用于小型项目或者全栈开发人员,一般可以选择的模板包括Freemaker和Thymeleaf等。

虾米大王的学习历程 1078

SpringBoot+Freemarker 项目ftl中使用include的异常

SpringBoot + Freemarker项目,今天遇到一个很闹心的问题! 问题图例: 问题文件结构: 文件引用方式: 看似没错,header位于index文件同级的文件夹下,正常思维下,或者在jsp中就是通过common/header进行引用,并且在idea中这么写并没错误提示,但是在springBoot + freemarker中却不行,百度根本搜不到任何东西(PS:难道

Handsome丶Boy 1万+

Java utgard连接OPC问题记录

怎么开启是个问题, 是在引入openscada的jar包里的Sever类中修改,这就犯难了, 其实没必要, 只要在自己项目下创建与openscada中Server类相同的路径,并复制Server过去改就行了, 项目会优先使用本地类,像下面这样。奇迹发生了,0x00000005解决. 注: 我的安全补丁编码跟网上查到的并不一样, 所以最初没有删,后来全都删了就好了,这个编码规则咱也不知道.安全日志中记录用户登录行为, OPC通信需要使用Windows系统用户进行登录, 如果用户名密码错误这里会有相关记录.

wangxin1949的博客 2839

SpringBoot+Thymeleaf实现html文件引入(类似include功能)

由于对高大上的前端处理不太熟悉,想直接通过MVC的方式进行内容传递,因此选用了Thymeleaf模版处理向前端传值的问题。 但是觉得很多PHP框架所实现的include模版的方式很不错,能够很好的实现头文件、导航、页尾等和主要内容的解耦,因此想通过使用Thymeleaf模版的同时,也能实现类似于include的功能。 思路和背景 觉得如果有精力,最好还是RESTFul的结构,然后前端采用ang

hustwht的专栏 1万+

EDEM基础操作指南

EDEM(Enhanced Discrete Element Method)是一种用于模拟颗粒物料行为的软件工具。它可以模拟颗粒的碰撞、流动、堆积等过程,广泛应用于颗粒物料工程、振动筛分、堆垛机械、矿山开采等领域。本文将介绍EDEM的基础操作步骤,并提供相应的源代码示例。以上是EDEM的基础操作步骤。通过创建EDEM项目、定义颗粒材料、导入几何模型、设置边界条件、创建颗粒流场和运行模拟,您可以开始模拟颗粒物料的行为并进行相应的分析和优化。请根据您的具体需求和场景进行相应的参数设置和功能调用。

TrDelphi的博客 5292

Outlook日历同步全攻略:Win10+安卓+iOS三端无缝衔接(附常见问题解决)

本文提供了一份详尽的Outlook日历同步指南,帮助用户在Windows 10、安卓和iOS三端实现无缝衔接。文章深入解析了Exchange ActiveSync等核心同步原理,并给出了从账户创建到各设备(特别是华为手机)的具体配置步骤、进阶管理技巧以及针对同步失败、事件重复等常见问题的实战解决方案,旨在彻底解决跨平台日程管理的痛点。

l3m4n的博客 549

springBoot与freemarker整合后,项目打成Jar包后Freemarker找不到模板的问题

问题介绍 springBoot与freemarker整合后,本地测试没有问题,提交到服务器上时。报错获取不到resource/templates的模板: 020-07-01 10:52:38 freemarker.template.TemplateNotFoundException: Template not found for name “basicProcessTemplate.ftl”. 2020-07-01 10:52:38 The name was interpreted by this T.

weixin_38205301的博客 8402

PAM4信号测试实战:从眼图分析到误码率测量的技术演进

在高速数字系统设计中,信号完整性测试是确保数据传输可靠性的核心环节。其基本原理在于通过时域和频域分析,精确评估信号在传输过程中的质量衰减与失真。随着数据速率向56Gbps及以上演进,传统的NRZ编码面临带宽瓶颈,而PAM4调制技术通过在每个符号周期内承载更多比特信息,成为提升信道效率的关键路径。这项技术的工程价值在于,它允许在相同带宽下实现翻倍的数据吞吐量,这对于数据中心互联、PCIe 6.0及800G以太网等高速接口至关重要。然而,PAM4信号电平间距更小,对噪声和抖动极为敏感,导致其原始误码率显著升高,

weixin_42522817的博客 656

Cannot find template location(s): [classpath:/templates/] 解决templates无法识别,原因是打包没有生成templates文件夹

启动SpringBoot项目出现o.s.b.a.f.FreeMarkerAutoConfiguration - Cannot find template location(s): [classpath:/templates/] (please add some templates, check your FreeMarker configuration, or set spring.freemarker.checkTemplateLocation=false)

m0_46408884的博客 892

蓝牙攻防实战指南:低功耗蓝牙

Bluetooth Low Energy(也称Bluetooth Smart)是经典蓝牙(Bluetooth Classic)的演进版本,设计目标是实现极低功耗,适用于无需频繁更换电池的设备,如智能手环、健康监测器、蓝牙标签等。Bluetooth Low Energy 是一项极具前景的无线通信技术,它以极低的功耗实现了短距离高效通信,广泛应用于智能设备和物联网领域。然而,其简化的协议结构和配对机制也带来了不小的安全挑战。

idlecloud0105的博客 682

模拟量输入功能块 S_ITR(Easy系列PLC完整ST源代码)

IN Input INT 输入数字量 1IN ISH INT 输入数字量上限 2IN ISL INT 输入数字量下限 3IN OSH REAL 输出工程量上限 4IN OSL REAL 输出工程量下限 5OUT OUTPUT REAL 输出工程量 6VAR temp1 REAL 临时变量1 7VAR temp2 REAL 临时变量2 8。

RXXW_Dor的博客 716

freemarker.template.TemplateNotFoundException: Template not found for name "*.ftl"

Freemarker 加载模板方法(SpringBoot环境) 最近项目上用到freeMarker 的模板,遇到有关配置freeMarker的模板路径时,配置过如下情况:** 根据官网上freeMarker的Api配置 但是自己不管怎么修改,还是报freemarker.template.TemplateNotFoundException: Template not found for name “*.ftl” 1、首先检查下打的包target下是否有你需要的模板文件 没有则需要设置pom文件 <

baidu_36882394的博客 2万+

DXF转G代码是圆弧的方向如何确定?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1185

springboot模板引擎_Spring Boot实战:如何搞定前端模板引擎?

作者:liuxiaopeng链接:https://www.cnblogs.com/paddix/p/8905531.html前言虽然现在很多开发,都采用了前后端完全分离的模式,即后端只提供数据接口,前端通过AJAX请求获取数据,完全不需要用到模板引擎。这种方式的优点在于前后端完全分离,并且随着近几年前端工程化工具和MVC框架的完善,使得这种模式的维护成本相对来说也更加低一点。但是这种模式不利于SE...

weixin_39973196的博客 392

如何用 Claude Code 做代码重构,而不是重写

摘要: 在使用Claude Code进行代码优化时,AI容易“重写”而非“重构”,导致改动过大、review困难。本文提出3个关键约束方法:1)限制修改范围(如仅修改指定函数);2)明确不改变代码行为;3)要求最小必要修改。通过分步骤重构、先获取重构建议再修改、使用标准模板(保持函数签名/输入输出/结构不变)等方式,可使AI输出更符合工程需求的小范围安全重构。对于彻底混乱的代码,才建议直接重写。核心在于通过提示词精准约束AI的修改行为,将其转化为高效的代码重构助手。

sg_knight的专栏 980

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【SpringBoot】Spring Boot 与模板引擎

一、模板引擎 原文 (1)除了REST Web服务之外,您还可以使用Spring MVC来提供动态HTML内容。Spring MVC支持各种模板技术,包括Thymeleaf,FreeMarker、Velocity和JSP。同样,许多其他模板引擎包括它们自己的Spring MVC集成。 如果可能,应避免使用JSP。将它们与嵌入式servlet容器一起使用时,存在几个已知的限制 在默认配...

天天新知 563

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SpringBoot之模板引擎

SpringBoot之模板引擎 模板引擎简介 模板引擎作用 市面上的模板引擎有:JSP、Velocity、Freemarker、Thymeleaf; 之前开发用jsp当摸吧引擎,但是springboot的特殊机制,使得springboot不支持jsp页面,但这样会有很多开发上的不方便,所以他支持了Thymelead模板引擎。 Thymeleaf语法 特点:相比jsp,他语法更...

孔祥月的博客 5054

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

SpringBoot系列:Spring Boot使用模板引擎Thymeleaf

一、Java模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。 在java中,主要的模板引擎有JSP、Thymeleaf、FreeMarker、Velocity等。 虽然随着前后端分离的崛起和流行,模板引擎已遭受到冷落,但不少旧项目依然使用java的模板引擎渲染界面,而偶...

Simple_Yangger的博客 877

SpringBoot——模板引擎的介绍、thymeleaf模板引擎

目录 一、模板引擎 二、Thymeleaf的导入 三、Thymeleaf分析 四、使用Thymeleaf简单测试 五、Thymeleaf 语法 六、简单练习 一、模板引擎 跳转到目录 前端交给我们的页面,是html页面。如果是我们以前开发,我们需要把他们转成jsp页面,jsp好处就是当我们查出一些数据 转发到JSP页面以后,我们可以用jsp轻松实现数据的显示,及交互等。 jsp支持非常强大...

Guizy 2255

springboot模板引擎_spring boot集成模板引擎

spring boot 支持自动配置模板引擎,只需要加入相应的包即可完成模板引擎的配置,如加入thymeleaf 则pom中引入org.springframework.bootspring-boot-starter-thymeleafspring boot 支持以下四种模板的自动配置FreeMarkerGroovyThymeleafMustache以上四种模板都可以通过引入pom的方式自动完成配置...

weixin_39942488的博客 147

SpringBoot模板引擎

JSPVelocityFreemarkerThymeleafSpringBoot推荐的Thymeleaf;语法更简单,功能更强大;二、使用Thymeleaf1.引入依赖在pom.xml中引入从spring父文件中能看到Springboot2.0.1所使用的thymeleaf版本是3.0.9springBoot启动的时候会自动配置从ThymeleafAutoConfiguration的源代码中我们可以得知ThymeleafProperties中配置了Thymeleaf的规则。

2302_79585857的博客 958

SpringBoot笔记之模板引擎

Webjars本质就是以jar包的方式引入我们的静态资源 , 我们以前要导入一个静态资源文件,直接导入即可。使用SpringBoot需要使用Webjars,我们可以去搜索一下:

JAVA开发区的博客 2392

【Springboot】SpringBoot基础知识及整合Thymeleaf模板引擎

①Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。一、

未来可以改变 2113
上一篇: Springboot入门
下一篇: Springboot整合mybatis
water_java
博客等级 码龄7年 9粉丝 124原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值