java - 为什么 Spring MVC 以 404 响应并报告 "No mapping found for HTTP request with URI [...] in DispatcherServlet"?

标签 java spring spring-mvc servlets

我正在编写一个部署在 Tomcat 上的 Spring MVC 应用程序。见下文minimal, complete, and verifiable example

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")
@EnableWebMvc
public class SpringServletConfig {
    @Bean
    public InternalResourceViewResolver resolver() {
        InternalResourceViewResolver vr = new InternalResourceViewResolver();
        vr.setPrefix("/WEB-INF/jsps/");
        vr.setSuffix(".jsp");
        return vr;
    }
}
最后,我有一个 @Controller包装内com.example.controllers
@Controller
public 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'
我在 /WEB-INF/jsps/index.jsp 有一个 JSP 资源我希望 Spring MVC 使用我的 Controller 来处理请求并转发到 JSP,那么为什么它会以 404 响应呢?

这是针对有关此警告消息的问题的规范帖子。

最佳答案

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

@Bean
public 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>

`
来自:JSP file not rendering in Spring Boot web application

关于java - 为什么 Spring MVC 以 404 响应并报告 "No mapping found for HTTP request with URI [...] in DispatcherServlet"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61531253/

相关文章:

java - 不可序列化类中的非 transient 不可序列化实例字段?

spring - 如何设置 SessionRepositoryFilter 的顺序?

java - Spring 3 bean 未正确连接

spring - 注入(inject) Autowiring 依赖项失败嵌套异常

java - 为什么 Java 无法加载此类 : com. android.org.conscrypt.OpenSSLRSAPublicKey

java - 安装河马 CMS : NullPointerException with essentials webapp

java - Spring Boot、Thymeleaf 和@Controller

java - 了解 spring mvc 中的 View 分辨率

java - Spring MVC 和 JSR 303 - 手动验证

java - 时间格式问题