Spring的映射方式

作者在 2007-12-25 14:16:21 发布以下内容

        Spring的映射方式有三种,分别是BeanNameUrlHandlerMapping, SimpleUrlHandlerMapping和CommonsPathMapHandlerMapping。

        第一种BeanNameUrlHandlerMapping,就是我在上一个例子中用到的。它是Spring默认的映射方式。通过一个具体的url将控制器联系在一起。简单的应用推荐使用这种映射方式。不过一般都不用它,因为如果要映射的请求很多,这样就不太方便了。

        第二种SimpleUrlHandlerMapping,这个应该说是Spring中最常用的映射方式了。看下面的一个例子:

<bean id="simpleUrlMapping" class=

"org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

<property name="mappings">

<props>

<prop key="/listCourses.htm">listCoursesController</prop>

<prop key="/register.htm">registerStudentController</prop>

<prop key="/displayCourse.htm">displayCourseController</prop>

<prop key="/login.htm">loginController</prop>

<prop key="/enroll.htm">enrollController</prop>

</props>

</property>

</bean>

         这个映射方式将需要处理的url列出来了。例如,如果url是listCourses.htm,那么listCoursesController控制器就会来处理这个请求。依此类推。

        至于第三种映射方式CommonsPathMapHandlerMapping,书上介绍说是在控制器里面编写对应的url,这种映射方式暂时没有用到过,就不多说了。

        如果想同时使用一种以上的映射方式该怎么办?Spring的所有映射类都继承了Order接口。我们可以通过设置<property name="order"><value>来控制映射方式的优先权。例如:

<bean id="beanNameUrlMapping" class="org.springframework.web.

servlet.handler.BeanNameUrlHandlerMapping">

<property name="order"><value>1</value></property>

</bean>

<bean id="simpleUrlMapping" class="org.springframework.web.

servlet.handler.SimpleUrlHandlerMapping">

<property name="order"><value>0</value></property>

<property name="mappings">

</property>

</bean>

        注意,order的值越低,优先权越高。因此,在这里SimpleUrlHandlerMapping的优先权要高于BeanNameUrlHandlerMapping的优先权,所以,先会在SimpleUrlHandlerMapping中寻找控制器,如果没有合适的结果再在BeanNameUrlHandlerMapping中寻找。
默认分类 | 阅读 1628 次
文章评论,共0条
游客请输入验证码