Spring BeanNameUrlHandlerMapping 和 SimpleUrlHandlerMapping 有什么区别?
在浏览了一些网站后我明白了
BeanNameUrlHandlerMapping 是 DispatcherServlet 的默认 HandlerMapping。
另外,在 BeanNameUrlHandlerMapping 中,您可以直接将 url 与 Controller 映射。
但使用 SimpleUrlHandlerMapping 也可以完成同样的事情。
我知道一些事情,但不太清楚,它与
name 接受 / 但 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)