SimpleUrlHandlerMapping

SimpleUrlHandlerMapping

Spring BeanNameUrlHandlerMapping和SimpleUrlHandlerMapping有什么区别?

经过一些网站后,我了解到
BeanNameUrlHandlerMapping是DispatcherServlet的默认HandlerMapping。

同样在BeanNameUrlHandlerMapping中,您可以直接将URL与Controller映射。

但是同样可以通过SimpleUrlHandlerMapping来完成。

我知道一些但不是很清楚的事情,它与

名称接受/但id无法.....但是我很困惑。

确切的区别是什么? SimpleUrlHandlerMapping有什么需要?

请解释...谢谢。

最佳答案

如果要映射多个URL映射到单个控制器类,则必须注册多个URL,这不是使用Spring IoC的好方法。

SimpleUrlHandlerMapping是使用映射或属性Bean定义URL映射的简单方法。这简化了Spring MVC中的url映射。

示例BeanNameUrlHandlerMapping

<bean name="/hello.htm" class="com.raistudies.ui.comtroller.HelloController"/>

<bean name="/sayHello*" class="com.raistudies.ui.comtroller.HelloController"/>

<bean id="urlHandler" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

重要:
  • 为每个URL定义一个bean
  • Spring容器通过url有一个bean。尽管所有URL都由相同的bean
  • 提供

    示例SimpleUrlHandlerMapping
    <bean id="helloController" class="com.raistudies.ui.controller.HelloController"/>
    
      <bean id="urlHandler" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="urlMap">
                <map>
                    <entry key="/hello.htm" value-ref="helloController"/>
                    <entry key="/sayHello*" value-ref="helloController"/>
                    <entry key="/welcome.html" value-ref="helloController"/>
                    <entry key="/welcomeUser*" value-ref="helloController"/>
                </map>
            </property>
        </bean>
    

    重要:
  • 对使用同一控制器的URL使用单个bean。
  • 不必为每个URL定义一个bean
  • 09-27 18:45