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

Spring项目使用@Controller报白标签错误换@RestController正常原因咨询

Spring项目@Controller注解触发白标签错误的原因

核心差异点

  • @RestController 是Spring提供的组合注解,等价于 @Controller + @ResponseBody,两者的核心逻辑差异在于是否走视图解析流程:
    • 用@Controller注解的控制器,Spring默认会将方法的返回值当作视图名称,去项目的模板资源目录下匹配对应的视图文件(比如Thymeleaf的templates目录下的HTML文件、JSP文件等),如果找不到匹配的视图文件,就会抛出404异常,返回Spring默认的白标签错误页。
    • 用@RestController注解的控制器,会自动给所有接口方法加上@ResponseBody注解,方法返回值会直接被序列化为JSON/XML等格式的响应体返回给客户端,不会触发视图解析逻辑,自然不会因为找不到视图文件报错。

验证示例

如果你用@Controller写了如下接口:

@Controller
public class DemoController {
    @GetMapping("/test")
    public String testApi() {
        return "success";
    }
}

此时Spring会尝试查找名为success的视图模板,找不到就会返回白标签错误。如果你希望@Controller也能直接返回响应内容,只需要在对应方法上添加@ResponseBody注解即可,效果和用@RestController一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 16:36:01