Controller控制器使用@RestController可以正确返回数据,但当使用@Controller时不能返回页面,报错如下

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

网上找过,基本都是说有是三个原因

1. Application启动类的位置不对,要将Application类放在最外侧,即包含所有子包;

比如你的项目包是:com.example.demo

那么你的XXApplication.java需放在com.example.demo下,而Controller.java需放在com.example.demo.controller目录下。

原因:spring-boot会自动加载启动类所有包下及其子包下的所有组件。

2. springboot的配置文件:application.yml或者application.properties中关于视图解析的配置问题

    当pom文件下的spring-boot-starter-paren版本高时使用: 
    spring.mvc.view.prefix/spring.mvc.view.suffix 
    当pom文件下的spring-boot-starter-paren版本低时使用: 
    spring.view.prefix/spring.view.suffix

3. 控制器(controller)的url路径书写问题

    @RequestMapping(“XXXXX”)

实际访问的路径与“XXX”不符合;

 

但是!!!!!!上面的方法试过了都不行,最后发现原来是少了jar包。

 

解决方法:在pom.xml里添加

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

 重新加载pom.xml,问题解决!!!!!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐