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,问题解决!!!!!