SpringBoot之Web开发基础(静态资源引入,thymeleaf基础)


前言

spring boot对web的开发非常之方便,但是原理上逻辑性有点强,有点绕


提示:以下是本篇文章正文内容,下面案例可供参考

一、如何引入静态资源

1.什么是静态资源

所谓的静态资源简单来说是指前端的代码,和一些资源包(JQ).在springboot中使用映射来对静态资源进行引入

二、规则1 : 以webjars访问静态资源

这里用到一个IDEA的命令 Ctrl+N 查找存在的某一个类

1.webjars路径访问

Ctrl+N 找到WebMvcAutoConfiguration类,然后找到addResourceHandlers()方法

代码如下(示例):

@Override
		public void addResourceHandlers(ResourceHandlerRegistry registry) {
    
    
			if (!this.resourceProperties.isAddMappings()) {
    
    
				logger.debug("Default resource handling disabled");
				return;
			}
			Duration cachePeriod = this.resourceProperties.getCache().getPeriod();
			CacheControl cacheControl = this.resourceProperties.getCache().getCachecontrol().toHttpCacheControl();
			if (!registry.hasMappingForPattern("/webjars/**")) {
    
    
				customizeResourceHandlerRegistration(registry.addResourceHandler("/webjars/**")
						.addResourceLocations("classpath:/META-INF/resources/webjars/")
						.setCachePeriod(getSeconds(cachePeriod)).setCacheControl(cacheControl));
			}
			String staticPathPattern = this.mvcProperties.getStaticPathPattern();
			if (!registry.hasMappingForPattern(staticPathPattern)) {
    
    
				customizeResourceHandlerRegistration(registry.addResourceHandler(staticPathPattern)
						.addResourceLocations(getResourceLocations(this.resourceProperties.getStaticLocations()))
						.setCachePeriod(getSeconds(cachePeriod)).setCacheControl(cacheControl));
			}
		}

这么多代码,你需要看懂的就是下面这几句在这里插入图片描述
这块讲的是,**webjars/都去下一行的"classpath:/META-INF/resources/webjars/"目录下找资源.
之前有讲过,这段路径是文件在
编译以后存放的位置

2.如何使用?

代码如下(示例):

打开webjars网站 , 选中需要的资源及其版本 , 然后复制依赖加入到pom.xml文件中即可
下面以jQuery为例 :

在这里插入图片描述
复制给pom.xml文件即可!

三、规则2 : 本地静态资源的引用

1./**可访问当前项目下任何资源

在上面的addResourceHandlers()方法中,按如下顺序进入,就能看到private String staticPathPattern = "/**"; 说明可以访问当前项目下任何资源

在这里插入图片描述
在这里插入图片描述

同时在ResourceProperties类下我们可以看到如下四种路径

"classpath:/META-INF/resources/",
"classpath:/resources/", 
"classpath:/static/", 
"classpath:/public/"

我们将静态资源放在这四种文件夹下,springboot都能找到他们
在这里插入图片描述
当然了,IDEA只为我们创建了一种static的文件夹,其它的三种方式都可以在resource文件夹下自行创建

场景 : 使用localhost:8888/xxx 即可访问到静态资源,举个例子 , http://localhost:8080//asserts/js/Chart.min.js以这种方式,我们即可访问到asserts下的Chart.min.js包
效果如图 :

在这里插入图片描述

四、规则3: 欢迎页映射配置(默认访问首页)

静态资源文件夹下的所有index.html都会被/**映射
http://localhost:8080/会默认访问首页

五、浏览器顶部角标设置

在这里插入图片描述
角标是指这些图标
在这里插入图片描述
只需将文件放在这两个文件夹下即可,会自动配置图标


六、thymeleaf基础

JSP的替代品,虽然说现在JSP是入土技术了,开发中用不上,但是在学习的时候还是挺方便的

thymeleaf : 把模板和数据交给模板引擎管理

1.如何使用thymeleaf?

(1) 需要在springboot的starter中引入依赖(注意与layout的适配)
(2) 然后把html页面放进/templates路径下,thymeleaf自动渲染

2.基本语法

在这里插入图片描述

3.表达式

1.${}获取变量值
2.*{} 变量选择表达式,功能与${}类似,配合 th:object="${session.user}使用
3.@{}定义URL连接

当然,内置了一大堆工具对象,查文档吧

4.小细节

如果出现配置好的thymeleaf页面无法取到后台传来的值的情况,可以尝试如下方法

1.清空浏览器缓存并刷新
2.切换thymeleaf版本号为3.0.11.RELEASE
3.查看目标HTML页面是否存放在templates文件夹下
4.删去controller中的@ResponseBody [我是这个原因]
5.重建或重启项目

猜你喜欢

转载自blog.csdn.net/qq_45596525/article/details/108986108
今日推荐