7.静态资源
同步开发或者半分离开发的项目中。
springMVC中的静态资源:
- 在web.xml中配置名字叫default的servlet,对后缀.html.js.css.png.jpg都做映射。
- 在springmvc.xml文件里mvc:default-servlet-handler
- 在springmvc.xml文件里做静态资源映射。<mvc:resources mapping="/static/**" location="/static/">
在springboot中默认提供了4个静态资源目录,推荐使用src/main/resources/static目录做静态目录:
src/main/resources/META-INF/resources/, 优先级最高
src/main/resources/resources/,
src/main/resources/static/,
src/main/resources/public/ 优先级最低
8.欢迎页
在四个静态资源目录下加index.html即可。按照优先级查找,查找到就生效。
9.替换项目浏览器图标
用的是外部tomcat:
把favicon.ico放在root目录
用的时内嵌tomcat:
把favicon.ico放在静态资源目录即可。
10.thymeleaf模板引擎
同步开发中使用:
用户请求服务端接口–>调用服务层代码–>得到数据–>把数据放在request作用域–>指定视图名–>在视图中使用模板技术从request中获取数据–>模板语言把数据渲染生成静态的html.
- 在pom中引入thymeleaf启动器:spring-boot-starter-thymeleaf
- 该启动器对应的预配置类中,配置ThymeleafViewResolver视图解析器,对handler返回的字符串进行拼接视图名。
thymeleaf对比jsp:
jsp:编写xx.jsp–>当用户首次访问xx.jsp–>jsp引擎负责生成xx.java类–>编译器编译为xx.class–>加载字节码到虚拟机–>实例化对象,执行service方法,获取数据,进行渲染,输出纯静态的html字符串给前端
thymeleaf:编写xx.html–>首次访问xx.html–>thymeleaf引擎负责加载该xx.html到内存–>解析模板语法获取数据进行渲染,输出纯静态的html给前端.
springboot不支持jsp,推荐使用thymleaf作为html动态模板语言.
如果改了视图后,刷新不生效,ctrl+F9
模板语法:
属性表达式:${},专用来获取request,session,servletContext对象中的数据:
request:[[${key}]]
sesison:[[${session.key}]]
servletContext:[[${#servletContext.getAttribute('key')}]]
链接表达式:@{},自动补全项目的根路径。
<a th:href="@{/url(key=${},key=value)}">点我</a>
文档表达式:~{},页面嵌套,写文档名即可
th属性:
th:text:结合属性表达式使用,为双标签赋值
th:value:结合属性表达式使用,给单标签赋值。
th:src: 结合链接表达式使用
th:href:结合链接表达式使用
th:action:结合链接表达式使用
th:insert: 结合文档表达式使用,做页面嵌套
th:replace:结合文档表达式使用,做页面嵌套
th:fragment:结合文档表达式使用,做局部页面嵌套
th:each:结合属性表达式获取后端的集合数据,遍历显示数据。