定义多个handel mapping和ViewResolver

1.  定义多个handel mapping

Spring org.springframework.core包里面有个Ordered的接口,这个接口有个未实现的方法是public int getOrder();我理解这个接口的意义就是让实现它的类有者顺序关系,Spring提供的所以handelmapping类都是实现了Ordered接口的,这说明了所有的handelmapping类都有着顺序关系,所以在同一个WebApplication中可以定义多个handelmapping,每个handelmapping都有自己的order值,值越小的优先权越大,系统先会用优先权最大的的去做mapping,如果找不到资源的话,再用下一个级别的mapping去找!

例如:

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

 

以上的例子表示simpleUrlMapping的优先权大于beanNameUrlMapping,系统先用simpleUrlMapping去找资源,找不到再用beanNameUrlMapping去找一次。

2.  定义多个ViewResolver

和定义handel mapping类似,也是通过定义ViewResolverorder属性来定义ViewResolver的优先权,但我不理解的是ViewResolver并没有实现Ordered接口,不知道他的order属性从何而来。

Spring in Action给出的例子:

 

<bean id="viewResolver" class=

"org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix"><value>/WEB-INF/jsp/</value></property>

<property name="suffix"><value>.jsp</value></property>

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

</bean>

<bean id="xmlFileViewResolver" class=

"org.springframework.web.servlet.view.XmlFileViewResolver">

<property name="location">

<value>/WEB-INF/views.xml</value>

</property>

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

</bean>

 

你可能感兴趣的:(spring,Web,jsp,bean,servlet)