[英]Spring MVC throws 404 NOT_FOUND while looking for JSP files
在一个简单的 Spring 核心 MVC 项目(没有 Spring 启动,没有 XML 配置)中,我在尝试访问 controller 中声明的 URL 时得到 404 NOT_FOUND,它说找不到 8820427489022 文件
这是控制台 output:
[http-nio-8080-exec-1] DEBUG DispatcherServlet - GET "/appmutualista/socios/showSocios", parameters={}
[http-nio-8080-exec-1] DEBUG RequestMappingHandlerMapping - Mapped to dev.lorena.projects.appmutualista.controller.SocioController#showSocios()
[http-nio-8080-exec-1] DEBUG JstlView - View name 'socios', model {}
[http-nio-8080-exec-1] DEBUG JstlView - Forwarding to [/webapp/view/socios.jsp]
[http-nio-8080-exec-1] DEBUG DispatcherServlet - Completed 404 NOT_FOUND
controller:
@Controller
@RequestMapping("/socios")
public class SocioController {
@GetMapping("/showSocios")
public String showSocios() {
return "socios";
}
}
@Configuration class 中的 ViewResolver bean:
@Bean
public ViewResolver internalResourceViewResolver() {
InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();
internalResourceViewResolver.setPrefix("/webapp/view/");
internalResourceViewResolver.setSuffix(".jsp");
return internalResourceViewResolver;
}
和项目结构:
我正在使用嵌入式 Tomcat 9 和 JDK 8 来运行该应用程序。 几个小时后,我无法弄清楚我做错了什么。
通常项目有下一个层次结构:
src
`-- main
|-- java
| `-- ...
|-- resources
| `-- ...
`-- webapp
|-- ...
最好在您的代码中创建相同的层次结构。 在这种情况下,root 是InternalResourceViewResolver
的webapp
文件夹
internalResourceViewResolver.setPrefix("/view/")
Jsp 应该在webapp
层次结构中,由于将 jsp 存储在资源文件夹中的行为不同(war 和 jar package 将此 jsp 存储在构建器 war 和 jar 的不同位置)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.