SpringBoot集成thymeleaf搭建web项目
基本搭建流程
1、在项目的pom.xml文件中添加依赖:1
2
3
4 <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
2、在application.yaml文件下配置context-path:1
2
3
4server:
port: 45031
servlet:
context-path: /MagazineCollector
注意在2.0.0 springboot版本后,context-path的写法如上
3、在resources目录下新建templates目录,在templates目录下新建index.html
4、编写controller类1
2
3
4
5
6
7
8
public class WebController {
"/index", method = RequestMethod.GET) (path =
public String index() {
return "/index";
}
}
注意,如果是return “/index”,则需要是@Controller注解。
还有另外一种写法,使用ModelAndView,则可以使用@RestController注解1
2
3
4
5
6
7
8
public class WebTestController {
"/index", method = RequestMethod.GET) (path =
public ModelAndView getIndex() {
return new ModelAndView("/index");
}
}
访问地址:http://localhost:45031/MagazineCollector/index即可访问index.html下内容
SpringBoot项目resources下static和templates目录的知识
1、SpringBoot默认资源处理
SpringBoot默认为我们提供了静态资源处理,使用 WebMvcAutoConfiguration 中的配置各种属性。
SpringBoot默认加载文件的路径是:1
2
3
4classpath:/META-INF/resources/
classpath:/resources/
classpath:/static/
classpath:/public/
2、静态资源和动态资源
SpringBoot项目下resources目录下,static目录默认存放的是项目的静态资源,如css、js、image等文件,也可以存放一些静态的html文件。而templates目录用于存放动态资源,如jsp页面等,或者是各种模板引擎的模板文件。动态页面需要先请求服务器,访问后台应用程序,然后再转向到页面,比如访问sjp。
SpringBoot建议不要使用jsp,默认使用Thymeleaf来做动态页面。
优先级顺序为:META/resources > resources > static > public
静态页面的return默认是跳转到/static/index.html。
当在pom.xml中引入了thymeleaf组件,动态跳转会覆盖默认的静态跳转,默认就会跳转到/templates/index.html。
注意看两者return代码也有区别,动态没有html后缀。
默认情况下, 网页存放于static目录下, 默认的”/“指向的是~/resouces/static/index.html文件
如果引入了thymeleaf, 则默认指向的地址为~/resouces/templates/index.html
在引入thymeleaf后, 如果仍需要访问~/static/index.html, 则可以使用重定向1
2
3
4"/indexInStaticFolder") (
public String getResourceInStaticFolder() {
return "redirect:/index.html";
}
有兴趣可以了解一下redirect和forward的区别。
3、SpringBoot项目使用WebJars统一管理静态资源
先说一下什么是webjars?我们在Web开发中,前端页面中用了越来越多的js或css,如jQuery等等,平时我们是将这些Web资源拷贝到Java的目录下,这种通过人工方式拷贝可能会产生版本误差,拷贝版本错误,前端页面就无法正确展示。
WebJars 就是为了解决这种问题衍生的,将这些Web前端资源打包成Java的Jar包,然后借助Maven这些依赖库的管理,保证这些Web资源版本唯一性。
WebJars 就是将js, css 等资源文件放到 classpath:/META-INF/resources/webjars/ 中,然后打包成jar发布到maven仓库中。
(1)在web项目中使用jquery、bootstrap等资源时可以使用WebJars,WebJars能使Maven的依赖管理支持OSS的JavaScript库/CSS库,比如jQuery、Bootstrap等。
在pom.xml文件引入依赖1
2
3
4
5
6
7
8
9
10
11
12
13 <!-- 引用bootstrap -->
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>3.3.7-1</version>
</dependency>
<!-- 引用jquery -->
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.1.1</version>
</dependency>
在html文件中引入以上资源1
2
3
4
5
6
7<head>
<meta charset="UTF-8">
<title>Dalaoyang</title>
<link rel="stylesheet" href="/webjars/bootstrap/3.3.7-1/css/bootstrap.min.css" />
<script src="/webjars/jquery/3.1.1/jquery.min.js"></script>
<script src="/webjars/bootstrap/3.3.7-1/js/bootstrap.min.js"></script>
</head>
(2)省略版本号
在pom.xml中引入locator1
2
3
4
5<dependency>
<groupId>org.webjars</groupId>
<artifactId>webjars-locator</artifactId>
<version>0.34</version>
</dependency>
使用:1
2<script type="text/javascript" src="/webjars/jquery/jquery.min.js"></script>
<script src="/webjars/bootstrap/js/bootstrap.min.js"></script>