SpringBoot(六)静态文件处理

如果我们需用给web项目中添加css/js/html文件的话,我们会发现此时没有webapp目录。
springboot创建的项目没有保存web资源的位置。

如果我们需要给springboot项目中添加web资源如何操作?

首先我们需要知道自动配置文件的位置。

 

 public static class Resources {
        private static final String[] CLASSPATH_RESOURCE_LOCATIONS = new String[]{
"classpath:/META-INF/resources/",
 "classpath:/resources/", 
"classpath:/static/", 
"classpath:/public/"};

1.静态资源的保存位置所有“/webjars/**”  

 webjars:将需要使用的静态资源打成jar包,我们如果需要就将整个jar导入值本项目就可以使用了。
例如:以JQuery为例来使用一下webjars方式
    1.https://www.webjars.org/--- 静态资源打成jar包查看位置
    2.在pom.xml文件中导入JQuery的jar依赖

1)导入依赖

<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>3.5.1</version>
</dependency>

2)测试访问我们导入的jquery文件
   启动服务,在浏览器的地址栏中直接访问jquery文件
http://localhost:8080/webjars/jquery/3.5.1/jquery.js

2.默认静态资源文件的位置

"classpath:/META-INF/resources/",===>src/main/resources//META-INF/resources/
 "classpath:/resources/", ===>src/main/resources/resources
"classpath:/static/", ===>src/main/resources/static
"classpath:/public/"  ===> src/main/resources/public

1)classpath:/META-INF/resources/

 

 2)classpath:/resources/

 3)classpath:/static/

 

 4)classpath:/public/

 

3.模板引擎

由于springboot是以jar包的方式打包程序的,而不是web项目,再者在springboot中我们用的是嵌入式的tomcat服务器,因此springboot项目是不支持动态页面的运行,所以如果我们都将页面处理成静态页面的话,那么到时候见加载数据的时候就需要大量的js来向后台请求数据回填到静态页面上,这样的话就会比较麻烦。所用springboot才为我们提供了模板引擎。

常见的模板引擎有JSP、Velocity、Freemarker、Thymeleaf
SpringBoot为我们推荐Thymeleaf模板引擎;因为他语法更简单,功能更强大。

1)引入Thymeleaf模板引擎的依赖包【启动器】

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


2)在src/main/resources/templates/,将html模板创建在templates下,thymeleaf就能自动渲染

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <ul>
        <li><h2  th:text="${id}"></h2></li>
        <li><h2  th:text="${name}"></h2></li>
        <li><h2  th:text="${age}"></h2></li>
        <li><h2  th:text="${address}"></h2></li>
    </ul>
</body>
</html>

xmlns:th="http://www.thymeleaf.org":在html文件中启用thymeleaf的标记元素

3.创建Controller控制器为html模板提供数据

package com.wangxing.springboot.springbootdemo5;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.Map;

@Controller
public class TestController {
    @RequestMapping(value = "/test1")
    public  String  testHello1(Map<String,Object> map){
        map.put("id",1001);
        map.put("name","张三");
        map.put("age",23);
        map.put("address","西安");
        return "mytest";
    }

    @RequestMapping(value = "/test2")
    public  String  testHello2(Model model){
        model.addAttribute("id",1001);
        model.addAttribute("name","张三");
        model.addAttribute("age",23);
        model.addAttribute("address","西安");
        return "mytest";
    }
}

注意:

1.请求处理方法的【参数】,是给模板包装数据【1.Map<String,Object> map  2.Model model】
2.请求处理方法的返回值,是html模板的名称,不用带“.html”的后缀
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值