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

SpringBoot Web MVC应用无法解析视图问题求助

嘿,我太懂从熟门熟路的Spring Boot REST转到Web MVC初期踩坑的感觉了!虽然你没说具体遇到的问题(比如404、视图解析失败这类),但结合你已经做的配置,我给你列几个高频排查点,应该能帮你搞定:

常见问题排查指南
  • 先确认JSP文件的位置是否完全匹配配置:你设置的视图前缀是/WEB-INF/views/、后缀是.jsp,那你的hello.jsp必须精准放在src/main/webapp/WEB-INF/views/目录下!很多人会不小心把webapp目录建到src/main/resources下面,这绝对会导致视图找不到。
  • 别手动指定tomcat-embed-jasper的版本:Spring Boot的父依赖已经帮你管理了所有兼容的版本,如果你在pom.xml里手动加了jasper的版本号,很容易出现兼容性问题。直接引入依赖就行,不用写版本:
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
    
  • 检查Controller的注解!别用错了:你用的是@Controller而不是@RestController对吧?后者会把返回值直接序列化成JSON返回,完全不走视图解析器,这是转Web MVC时最容易犯的低级错误!
  • 开DEBUG日志看细节:启动项目时把日志级别调到DEBUG,你能看到Spring MVC解析视图的全过程,比如有没有找到hello.jsp文件,日志里会有类似Looking up view name 'hello'的记录,一眼就能定位是路径问题还是解析器的问题。
  • 打包方式选对:如果是用内嵌Tomcat跑JSP,建议把打包方式设为war(pom.xml里<packaging>war</packaging>),虽然jar包也能跑,但内嵌Tomcat对JSP的支持有限,容易出奇怪的问题。

给你贴个正确的代码片段参考:

示例Controller

@Controller
public class GreetingController {

    @GetMapping("/greeting")
    public String showGreeting() {
        return "hello"; // 对应/WEB-INF/views/hello.jsp
    }
}

示例application.properties配置

spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

如果做完这些还是有问题,把具体的错误信息(比如控制台报错、浏览器返回的状态码)贴出来,我再帮你精准定位!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:48:30