Spring MVC BeanNameUrlHandlerMapping example
In Spring MVC, BeanNameUrlHandlerMapping is the default handler mapping mechanism, which maps URL requests to the name of the beans. For example,
<beans ...>
<bean
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean name="/welcome.htm"
class="com.mkyong.common.controller.WelcomeController" />
<bean name="/streetName.htm"
class="com.mkyong.common.controller.StreetNameController" />
<bean name="/process*.htm"
class="com.mkyong.common.controller.ProcessController" />
</beans>
In above example, If URI pattern
- /welcome.htm is requested, DispatcherServlet will forward the request to the “
WelcomeController
“. - /streetName.htm is requested, DispatcherServlet will forward the request to the “
StreetNameController
“. - /processCreditCard.htm or /process{any thing}.htm is requested, DispatcherServlet will forward the request to the “
ProcessController
“.
Note
Additionally, this mapping is support Ant style regex pattern match, see this AntPathMatcher javadoc for details.
Additionally, this mapping is support Ant style regex pattern match, see this AntPathMatcher javadoc for details.
Actually, declare BeanNameUrlHandlerMapping is optional, by default, if Spring can’t found handler mapping, the DispatcherServlet will creates a BeanNameUrlHandlerMapping automatically.
So, the above web.xml file is equivalence to the following web.xml:
<beans ...>
<bean name="/welcome.htm"
class="com.mkyong.common.controller.WelcomeController" />
<bean name="/streetName.htm"
class="com.mkyong.common.controller.StreetNameController" />
<bean name="/process*.htm"
class="com.mkyong.common.controller.ProcessController" />
</beans>
Download Source Code
Download it – SpringMVC-BeanNameUrlHandlerMapping-Example.zip (7 KB)
I got this error can anyone please help me to solve this
Error creating bean with name ‘HandlerMapping’
Hi, it’s very useful to me, and i think there is something wrong with the code. there will be a error like this ” no adapter for handler does your handler implement a supported interface like controller” when i run it. then i resolved the problem only added a “bean” in mvc-dispatcher-servlet.xml which name is “org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter”. so if i was wrong, please tell me.
Configuration for BeanNameUrlHandlerMapping must be in Spring Configuration file (EX: mvc-dispatcher-servlet.xml) not in web.xml.
Absolutely agree with you, it must be application context, not be in web context
You are correct.
Amazing content in such a simple and concise form. Keep up the good work.
If you encounter an error saying “error: package javax.servlet.http does not exist”
please try put following dependency in your pom.xml
whats this ans man..
hey the above one is not web.xml