Spring Boot项目JSP文件找不到问题求助
Spring Boot中JSP文件找不到(JSP file not found)问题解决
我希望通过自定义URL访问JSP文件视图,在Spring Boot项目的pom.xml中添加tomcat-embed-jasper依赖后,仍遇到「JSP file not found」错误。
我的Controller代码:
@Controller public class HelloController { @RequestMapping("say-hello") @ResponseBody public String sayHello() { //http://localhost:8080/say-hello return "Hello!, what are you learning today?"; } //http://localhost:8080/say-hello-html @RequestMapping("say-hello-html") @ResponseBody public String sayHelloHtml() { StringBuffer sb=new StringBuffer(); sb.append("<html>"); sb.append("<head>"); sb.append("<title> My First HTML pagenochange </title>"); sb.append("</head>"); sb.append("<body>"); sb.append("My First HTML page body - Not Changed"); sb.append("</body>"); sb.append("</html>"); return sb.toString(); } @RequestMapping("say-hello-jsp") public String sayHelloJsp() { return "SayHelloJsp"; } }
已添加的pom依赖:
<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency>
解决步骤:
检查JSP文件路径
Spring Boot默认会在src/main/webapp/WEB-INF/jsp/目录下查找JSP文件,确保SayHelloJsp.jsp放在这个路径里。如果要自定义路径,在application.properties中添加配置:spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp修改依赖scope
providedscope会导致本地运行时无法加载该依赖,移除scope标签或者将其改为compile:<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency>设置打包方式为war
JSP不支持jar包部署,需要在pom.xml中指定打包类型:<packaging>war</packaging>确保方法未添加@ResponseBody
你的sayHelloJsp方法没有加@ResponseBody是正确的,这个注解会让方法直接返回字符串,而不是去寻找对应的JSP视图。清理重建项目
执行mvn clean install清理项目缓存,重新构建后再启动应用。
内容的提问来源于stack exchange,提问作者Kowshika
相关产品推荐
相关产品推荐

