Reputation: 227
I have started using spring and am encountering this error
No mapping found for HTTP request with URI [/SpringSocialSample/login.htm] in DispatcherServlet with name 'SpringSocialSample'
I figured that login.htm cant be located by dispatcher servlet
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>
I have index.jsp where I redirect to login.jsp placed under WEB-INF/views..
Upvotes: 1
Views: 5487
Reputation: 15229
You've mapped the Spring Dispatcher to *.htm, so each time a url matching that pattern is requested, the dispatcher will look for a controller mapped to that specific URL request, it will NOT try to load static files (aka, your login.html html file is effectivelly hidden by this config, you cannot return it unless you first pass through a Spring Controller that sends it back as a view). You create a Spring Controller that returns that page, map it to the [login.htm] URI, and then Spring will no longer complain that it cannot find a mapping for that URL:
Check out the chapter "13.4. Handler mappings" from :
http://static.springsource.org/spring/docs/2.5.x/reference/mvc.html
Upvotes: 2