接上一篇【Springboot入门Ⅲ idea】
4 web开发
4.1 静态资源的访问
在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。
Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:
/static
/public
/resources
/META-INF/resources
举例:我们可以在src/main/resources/目录下创建static,在该位置放置一个图片文件。启动程序后,尝试访问http://localhost:8080/img/测试.png 。如能显示图片,配置成功。
有的人的项目结构不是这样一层一层下来的,可照下图配置,在侧边栏有一个齿轮设置按钮,点开后将第一个和第二个取消勾选即可.
测试后显示图片成功,说明配置正确
4.2 自动返回数据格式
在控制器里加一个方法,设置@ResponseBody即可将返回对象转成一个json字符串
4.3 全局异常捕获
@ExceptionHandler 表示拦截异常
@ControllerAdvice
controller 的一个辅助类,最常用的就是作为全局异常处理的切面类
可以指定扫描范围
约定了几种可行的返回值,如果是直接返回 model 类的话,需要使用
@ResponseBody 进行 json 转换
案例:
创建一个全局异常捕获类
GlobalExceptionHandler类(注意,键包时一定要与app类平级,不然会报错)
全局异常类配置如下,方法内容可自己设置
控制器方法中加入int i=1/0,手动加入异常
访问后获得一下消息即拦截成功
-------------------------------错误示范-------------------------------
如果建的包与app不同级时,spring注解无法扫描,导致有的类无法使用
@RestController 用于写API,给移动客户端提供数据,一般是返回json数据
@Controller 一般用于写后台模板(有页面,开发人员编写)
4.4 渲染Web页面
模板引擎
在动态HTML实现上Spring Boot依然可以完美胜任,并且提供了多种模板引擎的默认配置支持,所以在推荐的模板引擎下,我们可以很快的上手开发动态网站。
Spring Boot提供了默认配置的模板引擎主要有以下几种:
- Thymeleaf
- FreeMarker
- Velocity
- Groovy
- Mustache
Springboot+freemarker
Spring Boot建议使用这些模板引擎,避免使用JSP,若一定要使用JSP将无法实现Spring Boot的多种特性,具体可见后文:支持JSP的配置
当你使用上述模板引擎中的任何一个,它们默认的模板配置路径为:src/main/resources/templates。当然也可以修改这个路径,具体如何修改,可在后续各模板引擎的配置属性中查询并修改。
4.5 SprigBoot使用Freemarker
第一步:添加依赖
第二步:创建实体类和控制器
写一个实体类,提供getter,setter,构造函数(getter,setter每个都设置,这里由于截图太长不截了)
写个控制器,并返回些数据
第三步:创建.ftl模板文件
在src/main/resources/创建一个templates文件夹,后缀为*.ftl
创建位置如下,创建ftl文件可先创建一个html文档,在重命名(快捷键shift+f6)为.ftl后缀即可
页面设置如下
先测试是否能访问成功,重启项目,访问localhost:8080/user/list,出现一下页面即为访问成功
掌握如何取值和判断(图片较小,可适当放大)
红框中的两个值必须要一样,不然无法取到,return的地址不能以”/”开头,不然数据无法传到ftl页面
列表也可以根据某个字段进行排序