SpringBoot整合Web开发
静态资源访问
在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。
默认配置
SpringBoot 默认会使用 src/main/resources 目录下的如下文件夹作为Web资源文件夹,目录名需符合如下规则:
1 . /static:静态资源文件夹,如html,js,css等存放
2 . /public:静态资源文件夹,同上
3 . /templates:模版资源文件夹
举例:我们可以在src/main/resources/目录下创建static,在该位置放置一个图片文件。启动程序后,尝试访问http://localhost:8080/D.jpg。如能显示图片,配置成功。
可以看到,我放了一个图片进去,如果可以通过浏览器访问,就说明成功。
YML与Properties用法
SpringBoot默认使用 src/main/resource/application.properties 作为启动的配置文件,可以自定义如启动端口等等配置。
SpringBoot支持两种配置方式,一种是properties文件,一种是yml。
使用yml可以减少配置文件的重复性。
现在企业都用的是YML配置。
例如:
先用Properties文件
Properties文件
然后通过程序读取配置文件
可以看到读取出来了
@Value注解
作用是读取配置文件中的属性。
@Value的值有以下两类:
${ property : default_value }
#{ obj.property? :default_value }
@Value注解是Spring的注解
YML文件
可以看到YML文件比较方便,减少代码冗余。
在yml文件中有些细节需要注意,冒号后面要空一格再写值。
在项目执行时,properties文件的优先级更高,因为是默认的,所以使用yml文件时,要删除properties文件。
读取的结果,可以看到没有什么变化,就是更方便了。虽然现在看不出来,但是一旦涉及到企业应用,会方便很多。
渲染Web页面
一般搭建项目时需要分层。
com.example.controller—视图层 渲染我们页面
com.example.service—业务逻辑层
com.example.dao—数据库访问层
之前的例子用的@RestController来处理的请求,返回的是json对象,要渲染html页面,要通过模板引擎来实现。
在动态HTML实现上Spring Boot依然可以完美胜任,并且提供了多种模板引擎的默认配置支持,所以在推荐的模板引擎下,我们可以很快的上手开发动态网站。
Spring Boot提供了默认配置的模板引擎主要有以下几种:
1.Thymeleaf
2.FreeMarker
3.Velocity
4.Groovy
5.Mustache
但是全用是不太可能的。
所以主要学习前两个。
当你使用上述模板引擎中的任何一个,它们默认的模板配置路径为:src/main/resources/templates。
使用Freemarker模板引擎渲染web视图
导入freemarker依赖
先在视图层创建一个后台代码
创建一个ftl文件
添加配置文件
spring:
http:
encoding:
force: true
### 模版引擎编码为UTF-8
charset: UTF-8
freemarker:
allow-request-override: false
cache: false
check-template-location: true
charset: UTF-8
content-type: text/html; charset=utf-8
expose-request-attributes: false
expose-session-attributes: false
expose-spring-macro-helpers: false
## 模版文件结尾.ftl
suffix: .ftl
## 模版文件目录
template-loader-path: classpath:/templates
启动项目之后可以看到访问成功
Freemarker模板引擎条件判断
Freemarker模板可以进行输出结果的判断,比如,建立map表,判断条件。
可以看到输出结果
Freemarker中的比较方法
两种方法
1 用符号代替: > gt , >= gte ,< lt , <= lte
2 加括号 <#if(x>y)>
这是Freemarker中的格式,不按格式就会报错。
使用Thymeleaf模板引擎渲染web视图
thymeleaf是一款用于渲染XML/XHTML/HTML5内容的模板引擎,类似JSP,Velocity,FreeMaker等,它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用的模板引擎。
导入Maven依赖
建实体包和类
代码
添加Thymeleaf配置文件
###ThymeLeaf配置
spring:
thymeleaf:
#prefix:指定模板所在的目录
prefix: classpath:/templates/
#check-tempate-location: 检查模板路径是否存在
check-template-location: true
#cache: 是否缓存,开发模式下设置为false,避免改了模板还要重启服务器,线上设置为true,可以提高性能。
cache: true
suffix: .html
encoding: UTF-8
mode: HTML5
新建html文件
thymeleaf循环和if判断写法
循环语句
先在后端创建ArrayList表。前端写上循环。
thymeleaf标签 th:each的使用
对arrayList对象userList遍历,使用user作为接受参数接收。
运行出来是这样的
if判断
加上一个判断