引入静态资源:
webjars 将静态资源(js,css等)封装到了jar包里面,我们引入时只需要引入这些jar包,将依赖加入pom文件,依赖可以在webjars官网查找。访问从webjars开始写,如:http://localhost:8888/webjars/jquery/3.4.1/jquery.js
引入自己的静态资源,方式一:将自己写的静态资源打包为jars,再引入。
方式二:spring boot约定,spring boot将一些目录结构设置成静态资源存放路径,资源放入这些路径就可以,可以查找类WebMvcAutoConfiguration.addResourceHandlers下的默认静态资源路径(设置欢迎页,网站logo也可以在这里找到),如下:
设置网站logo:
默认图标名字是favicon.ico,放入任意静态资源目录
@Controller和@RestController的区别:
@Controller通过@requestmapping能映射到html文件(分两种),1.如果没有用thymeleaf写法是 return("*.html"),如果要返回json等数据使用Requestmapping + responsebody返回,而且html文件只能在前面说的静态目录下。2.如果使用了thymeleaf则只能写return("*"),*为文件名字,而且此时文件只能在thymeleaf配置的(默认templates)目录下,也可以返回通过return ("redirect:*.html")返回静态html。
更详细的代码
@Restcontroller相当于在每个方法前都添加了@Responsebody,其他情况和上面讲的类似,那么如果想要返回html页面怎么办呢? 可以使用modelandview类,此时类里面的情况还是和前面所讲的返回页面情况类似
使用thymeleaf:
springboot中使用动态页面需要使用thymeleaf来做,这是官方推荐的方法,需要注意就是之前提到的thymeleaf会使默认的静态配置失效,需要使用redirect:html但是这个已经是重定向(不是一个请求)的,和不使用thymeleaf情况不一样。不知道这个有什么好的解决方法,不过个人认为,这个不影响使用。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>