Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java BeanNameUrlHandlerMapping和SimpleUrlHandlerMapping之间的区别_Java_Spring_Model View Controller_Spring Mvc - Fatal编程技术网

Java BeanNameUrlHandlerMapping和SimpleUrlHandlerMapping之间的区别

Java BeanNameUrlHandlerMapping和SimpleUrlHandlerMapping之间的区别,java,spring,model-view-controller,spring-mvc,Java,Spring,Model View Controller,Spring Mvc,Spring BeanNameUrlHandlerMapping和SimpleUrlHandlerMapping之间的区别是什么 经过一些网站,我明白了 BeanNameUrlHandlerMapping是DispatcherServlet的默认HandlerMapping 此外,在BeanNameUrlHandlerMapping中,您可以直接将url映射到控制器 但同样的事情也可以通过SimpleRulHandlerMapping完成 我知道一些事情,但不是很清楚,这与 name接受/但i

Spring BeanNameUrlHandlerMapping和SimpleUrlHandlerMapping之间的区别是什么

经过一些网站,我明白了 BeanNameUrlHandlerMapping是DispatcherServlet的默认HandlerMapping

此外,在BeanNameUrlHandlerMapping中,您可以直接将url映射到控制器

但同样的事情也可以通过SimpleRulHandlerMapping完成

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

name接受/但id不能……但我很困惑

确切的差别是什么?SimpleUrlHandlerMapping需要什么


请解释…谢谢。

如果我们想将多个url映射到单个控制器类,我们必须注册多个url,而这不是使用Spring IoC的好方法

SimpleUrlHandlerMapping是一种使用映射或属性bean定义url映射的简单方法。这简化了SpringMVC中的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"/>
<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
  • Spring容器有一个bean by url。虽然所有的url都由同一个bean提供服务
示例SimpleUrlHandlerMapping

<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"/>
<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

感谢您的解释,现在已经很清楚了。我心中还有一个小小的疑问,我可以用这种形式来写,在这种形式中,您可以声明id和名称,并且在所有其他地方只需给出ref=myBean之类的引用即可。这有什么不对?