解决JSP框架的程序无法找到前端页面的问题

📅 发布时间:2026/7/6 20:30:22 👁️ 浏览次数:
解决JSP框架的程序无法找到前端页面的问题
$MODULE_WORKING_DIR$是IntelliJ IDEA 中的一个内置变量System Property它代表当前模块Module的工作目录Working Directory。✅ 为什么加了$MODULE_WORKING_DIR$就能正常使用了 核心原因Spring Boot 内嵌 Tomcat 在加载webapp目录时需要正确的“工作目录”来定位静态资源、JSP 文件等。如果工作目录设置错误会导致 JSP 找不到 → 404。而$MODULE_WORKING_DIR$正好指向了你的项目根目录确保了src/main/webapp能被正确识别JSP 文件路径解析正确静态资源CSS/JS也能正常访问 详细解释1.什么是Working directory在运行 Java 应用时JVM 会有一个“当前工作目录”用于解析相对路径如./webapp加载配置文件如application.properties查找资源如 JSP、HTML如果这个目录设置错了比如设成了target/classes那么 Spring Boot 的内嵌容器就无法找到webapp下的 JSP 文件。2.默认值是什么如果你不设置Working directoryIDEA 默认使用project root但有些情况下尤其是多模块项目IDEA 可能会自动设为某个子目录或target目录导致路径错乱。3.$MODULE_WORKING_DIR$是什么这是一个IDEA 内置的变量它的值是当前模块Module的根目录即pom.xml所在的目录。例如C:\workspace\ciecc-gm-greenmall✅ 这正是你期望的让 Spring Boot 从项目根目录开始查找src/main/webapp。4.为什么之前不行可能的原因包括工作目录被设置成了target/classes或build等编译输出目录多模块项目中IDEA 自动选择了错误的模块作为启动上下文没有显式指定工作目录导致 JVM 使用了不正确的默认路径5.$MODULE_WORKING_DIR$的作用当你设置了Working directory: $MODULE_WORKING_DIR$IDEA 会在运行时将实际路径替换为C:\your-project-root这样src/main/webapp就在working dir/src/main/webapp下Spring Boot 启动时能正确扫描并部署 JSP 文件访问/hello时能匹配到WEB-INF/jsp/hello.jsp✅ 实际效果对比表格设置结果Working directory: (空)可能默认为target/classes→ JSP 找不到 → 404Working directory: .相对路径可能不准确Working directory: $MODULE_WORKING_DIR$✅ 指向项目根目录 → JSP 正常加载 补充建议1.推荐始终使用$MODULE_WORKING_DIR$无论是否用 JSP都建议设置Working directory: $MODULE_WORKING_DIR$避免路径问题。2.配合其他配置确保pom.xml中packagingwar/packaging主类继承SpringBootServletInitializer使用Tomcat Server配置而非直接 run main更稳定 总结$MODULE_WORKING_DIR$是一个“魔法变量”它告诉 Spring Boot 从哪里开始查找资源如 JSP。加上它后工作目录被正确设置为项目根目录从而解决了 JSP 404 的问题。这是 IntelliJ IDEA 提供的一种强大机制让你无需手动输入路径就能保证运行环境的一致性。如果你还遇到类似问题如静态资源找不到也可以检查这个字段是否正确设置。