You need to enable JavaScript to run this app. Spring Boot在匹配接口端点无法正常显示JSP页面的问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot在匹配接口端点无法正常显示JSP页面的问题咨询

Spring Boot 访问接口无法渲染JSP页面问题排查方案

核心错因定位(对照现有配置逐一排查)

  • 返回值与视图解析规则冲突
    当前控制器中返回的字符串是home.jsp,但配置的视图解析规则设置了spring.mvc.view.suffix = .jsp。按照InternalResourceViewResolver的拼接逻辑,最终生成的视图路径为 前缀 + 返回值 + 后缀,也就是/webapp/home.jsp.jsp,两个.jsp后缀直接叠加,根本找不到目标文件。
  • JSP存放路径不符合内嵌Tomcat识别规则
    配置的前缀指向/webapp/,但Spring Boot内嵌Tomcat不会识别项目根目录下自定义创建的webapp文件夹,JSP文件必须放到固定的src/main/webapp路径下的指定子目录才能被扫描到。另外如果项目采用jar包格式启动,Spring Boot原生是不支持加载JSP的,必须切换为war包打包格式才能正常运行。
  • 依赖配置校验遗漏
    即便已经引入了Tomcat Jasper相关依赖,也要确认是否引入了tomcat-embed-jasper核心解析组件,缺了这个组件内嵌Tomcat根本无法执行JSP的语法解析。同时要检查启动类的包扫描范围,确保能扫描到编写的HomeController,避免出现接口映射失效的问题。

可直接落地的修正步骤

  1. 修改控制器方法的返回值,去掉冗余的.jsp后缀,让视图解析器可以自动完成路径拼接
    @RequestMapping("home")
    public String home() {
        System.out.println("Hello World");
        return "home";
    }
    
  2. 调整视图解析配置,把前缀指向正确的JSP存放路径
    spring.mvc.view.prefix = /WEB-INF/jsp/
    spring.mvc.view.suffix = .jsp
    
  3. 调整项目目录结构,把home.jsp文件移动到src/main/webapp/WEB-INF/jsp/目录下,不要把JSP文件放到resources下的static、templates文件夹中——这两个路径分别是静态资源、Thymeleaf模板的专用路径,JSP放到这里无法被正常识别。
  4. 访问/home接口时观察控制台输出:如果能打印出Hello World的日志,说明Controller逻辑已经正常执行,问题就出在路径拼接与文件存放位置上;如果没有输出日志,说明Controller未被Spring容器扫描到,需要调整启动类的包扫描范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.02 05:06:04