springboot中resource目录介绍与Thymeleaf使用

        在 Spring Boot 应用中,src/main/resources 目录是一个特殊的类路径目录,用于存放所有的资源文件,如配置文件、静态资源等。publicstatictemplates 是此目录下常用的子目录,它们在 Spring Boot 中扮演不同的角色:

  1. static:

    • 用途static 目录用于存放静态资源,如 JavaScript、CSS、图片文件等。
    • 直接访问:存放在 static 目录中的文件可以被客户端直接访问。这意味着任何人都可以通过 URL 直接请求这些文件,无需经过服务器端的任何处理。
    • 位置:默认情况下,Spring Boot 会自动将 /static/public/resources/META-INF/resources 目录下的资源映射到应用的根路径。
  2. public:

    • 功能与 static 目录相似,也是用来存放可以直接被客户端访问的静态资源。
    • 它是一个备选的标准目录,可以替代 static 目录使用。
  3. templates:

    • 用途templates 目录用于存放模板文件,这些文件通常是 HTML 文件,它们含有动态内容,需要通过模板引擎进行解析和渲染。
    • 服务器端处理templates 目录中的文件不会被客户端直接访问。相反,它们必须由服务器端的模板引擎(如 Thymeleaf、Freemarker 等)处理后,生成最终的 HTML 页面返回给客户端。
    • 位置:模板文件通常由控制器(Controller)中的方法返回视图名称引用,并由 Spring MVC 处理。模板引擎配置会指定模板文件的存储位置,默认是 templates 目录。

总结

  • 访问性static 中的资源可以直接被 Web 浏览器请求和获取,而 templates 目录中的文件则需要经过服务器处理(如填充数据、执行逻辑)才能形成最终的页面。
  • 交互性templates 目录下的文件通常包含动态内容,需要填充数据,适用于用户界面的动态交互,而 static 更多用于提供不会频繁变动的客户端代码和资源。
  • 技术实现static 目录的处理较为简单,主要涉及静态文件的服务;templates 的处理则复杂,涉及到模板引擎的选择和配置,以及与后端数据的动态绑定。

Thymeleaf

Thymeleaf 是一种用于 Web 和独立环境的现代服务器端 Java 模板引擎。在 Spring Boot 中,它常被用来渲染 HTML。Thymeleaf 的主要特点包括:

  • 自然模板: Thymeleaf 的模板语法能被浏览器正确显示,即使没有 Thymeleaf 进行渲染,也能作为静态文件正确显示。
  • 集成 Spring: Thymeleaf 与 Spring 框架有良好的集成支持,特别是在使用 Spring MVC 时。
  • 扩展性: 支持自定义方言和处理器,使得开发者可以根据特定需求扩展 Thymeleaf 的功能。

在使用 Thymeleaf 时,你通常会在 templates 目录下创建 .html 文件,并使用 Thymeleaf 提供的语法来编写动态内容,例如:

<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Title</title>
</head>
<body>
    <h1 th:text="'Hello, ' + ${name} + '!'">Hello, World!</h1>
</body>
</html>

  th:text 属性将会在页面渲染时被替换成实际的值。如果 name 的值是 "John", 页面将显示 "Hello, John!"。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xwzzz_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值