Spring Boot+Gradle+Eclipse项目资源目录缺失及JSP目录创建咨询
解决Spring Boot + Gradle在Eclipse中的目录结构与JSP配置问题
嘿,刚上手Spring Boot+Gradle在Eclipse里搭项目是吧?我来帮你捋清楚这些目录和JSP配置的问题~
一、关于缺失的src/main/resources目录
有两种简单的方式搞定它:
- 手动创建最快捷:直接在项目的
src/main目录下新建名为resources的文件夹就行,Eclipse和Gradle都会自动识别这个路径为默认资源目录,不用额外设置。 - 用Gradle命令生成标准结构:如果想让Gradle帮你自动生成所有标准目录,打开Eclipse的终端(或者外部命令行进入项目根目录),执行这条命令:
它会清理旧的Eclipse配置,重新生成符合Gradle规范的项目结构,包括./gradlew cleanEclipse eclipsesrc/main/resources,之后刷新下Eclipse项目就ok了。
二、JSP所需的WEB-INF与配置文件目录
要跑JSP的话,得按下面的结构来建:
- WEB-INF目录:先在项目根目录下建
src/main/webapp文件夹,然后在里面创建WEB-INF目录,接着在WEB-INF下建jsp子文件夹——你的JSP文件(比如hello.jsp)就放在这里。 - 配置文件存放:
application.properties(或者你喜欢的application.yml)直接丢到刚才搞定的src/main/resources里就行,Spring Boot会自动加载这里的配置。
三、Gradle配置必须调整的地方(划重点!)
Spring Boot默认的jar打包方式不支持JSP,所以得修改build.gradle文件,添加必要的依赖和插件:
- 添加JSP相关依赖:
dependencies { // 基础的Spring Boot Web Starter implementation 'org.springframework.boot:spring-boot-starter-web' // 嵌入Tomcat的JSP支持依赖 implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' // 如果你要用JSTL标签库,加上这个 implementation 'javax.servlet:jstl' } - 切换为War打包:把原来的
jar插件换成war插件,因为JSP需要War包的结构支持:plugins { id 'org.springframework.boot' version '你的Spring Boot版本号' id 'io.spring.dependency-management' version '对应版本号' id 'war' // 替换原来的id 'java'或者id 'jar' } - 确保Eclipse识别webapp目录(可选):如果Eclipse没自动识别
src/main/webapp,可以加这段配置指定路径:sourceSets { main { webapp { srcDir = 'src/main/webapp' } } } - 同步配置:右键项目 → Gradle → Refresh Gradle Project,让所有配置生效。
四、快速验证JSP是否能跑
写个简单的Controller跳转JSP:
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HelloController { @GetMapping("/hello") public String hello() { return "hello"; // 对应WEB-INF/jsp/hello.jsp这个文件 } }
然后在src/main/resources/application.properties里加视图解析的配置:
spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp
启动Spring Boot应用,访问http://localhost:8080/hello,就能看到你的JSP页面啦~
内容的提问来源于stack exchange,提问作者user2868864




