Spring Boot如何配置JSP文件映射,解决访问时文件自动下载问题
问题解决步骤
- 第一步:配置Spring MVC视图解析器
在src/main/resources/application.properties文件中添加如下配置:
# 配置jsp文件存放的前缀路径 spring.mvc.view.prefix=/WEB-INF/jsp/ # 配置jsp文件的后缀 spring.mvc.view.suffix=.jsp
如果使用的是application.yml,对应配置为:
spring: mvc: view: prefix: /WEB-INF/jsp/ suffix: .jsp
- 第二步:调整Controller返回值
修改HomeController.java中home方法的返回值,去掉.jsp后缀,直接返回视图名home即可:
package com.example.demo; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HomeController { @RequestMapping("home") public String home() { System.out.print("Hello"); return "home"; } }
注意:不要给方法加@ResponseBody注解,加了会直接把返回值作为响应体输出,不会走视图解析流程。
第三步:检查jsp文件存放路径
必须把home.jsp文件放在src/main/webapp/WEB-INF/jsp/目录下,如果对应目录不存在需要手动创建。如果放在resources/static或者resources/public这类静态资源目录下,Spring Boot会直接把文件当成静态资源返回,触发浏览器下载。第四步:打包方式调整(针对打包后运行的场景)
Spring Boot的可执行jar包对jsp支持有限,如果需要打包后部署运行,建议切换为war包打包方式:在build.gradle中添加id 'war'插件,打包后部署到外置Tomcat运行即可正常渲染jsp。
你的现有依赖中已经添加了tomcat-jasper渲染依赖,无需额外调整依赖配置。
内容的提问来源于stack exchange,提问作者Nirodha Wickramarathna
相关产品推荐
相关产品推荐

