为了账号安全,请及时绑定邮箱和手机立即绑定

为什么Spring MVC用404响应并报告“在DispatcherServlet中找不到带有URI

为什么Spring MVC用404响应并报告“在DispatcherServlet中找不到带有URI

为什么Spring MVC用404响应并报告“在DispatcherServlet中找不到带有URI我正在编写一个部署在Tomcat上的Spring MVC应用程序。请参阅以下最小,完整且可验证的示例public class Application extends AbstractAnnotationConfigDispatcherServletInitializer {     protected Class<?>[] getRootConfigClasses() {         return new Class<?>[] { };     }     protected Class<?>[] getServletConfigClasses() {         return new Class<?>[] { SpringServletConfig.class };     }     protected String[] getServletMappings() {         return new String[] { "/*" };     }}哪里SpringServletConfig是@Configuration@ComponentScan("com.example.controllers")@EnableWebMvcpublic class SpringServletConfig {     @Bean     public InternalResourceViewResolver resolver() {         InternalResourceViewResolver vr = new InternalResourceViewResolver();         vr.setPrefix("/WEB-INF/jsps/");         vr.setSuffix(".jsp");         return vr;     }}最后,我有一个@Controller包com.example.controllers@Controllerpublic class ExampleController {     @RequestMapping(path = "/home", method = RequestMethod.GET)     public String example() {         return "index";     }}我的应用程序的上下文名称是Example。当我发送请求时http://localhost:8080/Example/home应用程序以HTTP状态404响应并记录以下内容WARN  o.s.web.servlet.PageNotFound - No mapping found for HTTP request with URI `[/Example/WEB-INF/jsps/index.jsp]`  in `DispatcherServlet` with name 'dispatcher'我有一个JSP资源,/WEB-INF/jsps/index.jsp我期望Spring MVC使用我的控制器来处理请求并转发到JSP,那么为什么它会响应404呢?
查看完整描述

4 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

除了之前描述之外,我解决了我的问题:`

@Beanpublic InternalResourceViewResolver resolver() {
    InternalResourceViewResolver vr = new InternalResourceViewResolver();
    vr.setPrefix("/WEB-INF/jsps/");
    vr.setSuffix(".jsp");
    return vr;}

added tomcat-embed-jasper:

<dependency>
       <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
       <scope>provided</scope></dependency>

`from:JSP文件无法在Spring Boot Web应用程序中呈现


查看完整回答
反对 回复 2019-05-22
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

在我的例子中,我正在关注版本5.1.2Interceptors Spring文档(使用Spring Boot v2.0.4.RELEASE时),并且WebConfig该类具有注释@EnableWebMvc,这似乎与我的应用程序中的其他东西相冲突,这阻止了我的静态正确解析资产(即没有将CSS或JS文件返回给客户端)。

在尝试了很多不同的东西后,我尝试删除@EnableWebMvc并且它有效!

编辑:这是参考文档,说明你应该删除@EnableWebMvc注释

显然至少在我的情况下,我已经在配置我的Spring应用程序(虽然不是通过使用web.xml或任何其他静态文件,它肯定是以编程方式),所以这是一个冲突。


查看完整回答
反对 回复 2019-05-22
  • 4 回答
  • 0 关注
  • 2235 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信