Simplest example:
I have a dispatcher servlet configured to catch everything:
dispatcher
There are 2 problems:
Never use /*
in servlet mapping:
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<mvc:resources>
requires <mvc:annotation-driven>
(or explicitly declared handler mappings, etc).
This happens because DispatcherServlet
applies default configuration of handler mappings only when no custom handler mappings found in the context. Since <mvc:resources>
adds its own handler mapping, defaults are broken, therefore other handler mappings should be decalred explicitly, either by <mvc:annotation-driven>
or manually as beans.
Also note that <mvc:resources>
declares only DefaultAnnotationHandlerMapping
and doesn't declare other mappings such as BeanNameUrlHandlerMapping
, though they are in defaults of DispatcherServlet
. Declare them manually if you need them.
I also met this problem before. My situation was I didn't put all the 62 spring framework jars into the lib file (spring-framework-4.1.2.RELEASE edition), it did work. And then I also changed the 3.0.xsd into 2.5 or 3.1 for test, it all worked out. Of course, there are also other factors to affect your result.
add "mvc:annotation-driven" line into view resolvers SpringWeb.XML file. it is work for me