关于springboot 视图的配置问题

先说明 本人是刚进入springboot 阶段的小白 但这中间 我发现了很多没有明确的问题 比如 什么情况下返回视图该怎么整?一定要看完 这会让你不在迷惑
先总结一下 其他地方学来的东西 @RestController 和 @Controller 如果你使用的是视图那么 建议使用 @Controller 因为 @Controller 你在返回什么类型的立场上有 主动权 ,相反 @RestController 它是默认返回json 格式的数据的 适合开发接口使用
下面 是我说的重点
相信很多 和我处于一个水平线 的同志们 都会遇到这个问题 为什么配置返回视图 都不能用 。老是报 什么不存在 的错误 例如
Caused by: org.thymeleaf.exceptions.TemplateInputException: Error resolving template “test”, template might not exist or might not be accessible by any of the configured Template Resolvers
at org.thymeleaf.engine.TemplateManager.resolveTemplate(TemplateManager.java:870) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
又或者 反回的时候直接把 视图名 给返回出来了 。。原因 我说下 网上大都是千篇一律 都有不同的立场 ,我说一下 我的解决方案

首先你要决定使用什么方式返回视图?
thymeleaf?
mvc
先说 mvc 就只需要在配置文件里
配置mvc

spring:
  mvc:
    view:
        prefix: classpath:/templates/html
        suffix: .html
    resources:
      static-locations: classpath:/templates/static

加入
mvc 视图的 相关依赖 网上一堆 不说了 ,
thymeleaf 就是用他的相关依赖
多说几句 选用 thymeleaf 如果没有 templates 就在resources 下创建一个
一定要在resources创建 ,不然可能会明明配置了就是没用 。
如果明明在resources 下创建了 还是没用就 在pom .xml 加入这个

 	<resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>

thymeleaf 配置

spring:
  thymeleaf:
        cache: false
        prefix: classpath:/templates/html
        suffix: .html
        encoding: UTF-8
        mode: HTML5
        servlet:
          content-type: text/html

这个是我的目录结构
控制层的返回

看了这两张图 有明眼人就会发现 这样绝对会报错 原因
prefix: classpath:/templates/html 后面少了一个 / 因为 最后查找网页的时候 是这样的 /templates/htmltest.html 可能还是会报个 上述错误 解决方案 在控制器 返回视图前 加入 / 或者 配置里补上一个 /
prefix: classpath:/templates/html/

控制器里 的返回方式 是thymeleaf 方式 如果是 mvc则 使用 modelAndview 方式解决
最后 重点
使用 mvc 就 配置 spring.mvc 开始的prefix 等 ,如果你是使用 thymeleaf 那么 就配置 spring.thymeleaf 开始的 prefix 等 一定要区分开 ,千万别混用了 配置了 mvc 的 去使用 thymeleaf
不足之处 大佬们指出 我这是新手篇 嘿嘿

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值