文章目录
前言
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.重建或重启项目