Java Spring:找不到URI为的HTTP请求的映射

Java Spring:找不到URI为的HTTP请求的映射,java,spring,spring-mvc,Java,Spring,Spring Mvc,我已经开始使用spring,遇到了这个错误 在名为“SpringSocialSample”的DispatcherServlet中找不到URI为[/SpringSocialSample/login.htm]的HTTP请求的映射 我发现DispatcherServlet无法找到login.htm My SpringSocialSample-servlet.xml <context:component-scan base-package="com.social.spring.co

我已经开始使用spring,遇到了这个错误

在名为“SpringSocialSample”的DispatcherServlet中找不到URI为[/SpringSocialSample/login.htm]的HTTP请求的映射

我发现DispatcherServlet无法找到login.htm

My SpringSocialSample-servlet.xml

<context:component-scan
        base-package="com.social.spring.controllers" />
    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver"
        p:prefix="/WEB-INF/views/" p:suffix=".jsp" />

web.xml-

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
id="WebApp_ID" 
version="2.5">
  <display-name>SpringSocialSample</display-name>

  <context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>updatestatus.root</param-value>
  </context-param>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
  </context-param>

  <servlet>
    <servlet-name>SpringSocialSample</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>SpringSocialSample</servlet-name>
    <url-pattern>*.htm</url-pattern>
  </servlet-mapping>

  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

SpringSocialSample
WebApprotKey
根
上下文配置位置
/WEB-INF/applicationContext.xml
SpringSocialSample
org.springframework.web.servlet.DispatcherServlet
2.
SpringSocialSample
*.htm
org.springframework.web.context.ContextLoaderListener
index.jsp

我将index.jsp重定向到login.jsp,并将其放在WEB-INF/views下。

您已经将Spring Dispatcher映射到*.htm,因此每次请求与该模式匹配的url时,Dispatcher都会查找映射到该特定url请求的控制器,它不会尝试加载静态文件(也就是说,您的login.html html文件被此配置有效隐藏,除非您首先通过将其作为视图发送回的Spring控制器,否则无法返回该文件)。您创建一个Spring控制器,返回该页面,将其映射到[login.htm]URI,然后Spring将不再抱怨它找不到该URL的映射:

查看“13.4.处理程序映射”一章: