You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot项目能否同时使用@Controller与@RestController?报错求助

Spring Boot 循环视图路径错误解决办法

问题根源

这个错误的本质是:Spring Boot找不到能解析视图的模板引擎,把你控制器返回的"index"当成了请求路径,导致请求/index再次触发同一个控制器方法,形成循环调用。

解决步骤

1. 引入Thymeleaf模板引擎依赖

因为你的HTML文件放在resources/templates目录下,Spring Boot需要模板引擎来识别并渲染这些页面,Thymeleaf是Spring Boot官方推荐的模板引擎,直接添加依赖即可:

Maven 项目(修改pom.xml)

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

Gradle 项目(修改build.gradle)

implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'

2. 确认文件结构与控制器正确性

  • 确保你的HTML文件名为index.html,且存放在src/main/resources/templates目录下
  • 你的PageController代码无需修改:
@Controller
public class PageController {
    @GetMapping("/index")
    public String index() {
        return "index";
    }
}

引入Thymeleaf后,Spring Boot会自动配置视图解析规则:前缀为classpath:/templates/,后缀为.html,所以返回"index"会自动映射到templates/index.html。

3. RestController无需调整

你的PageRestController使用@RestController注解,会直接将返回对象序列化为JSON,和视图解析逻辑完全独立,不需要做任何修改。

验证

启动应用后:

  • 访问http://localhost:8080/index,应该能正常加载index.html页面
  • 访问http://localhost:8080/api/getUserData,会正常返回User对象的JSON数据

内容的提问来源于stack exchange,提问作者YourDaddyProgrammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 23:47:53