PDA

View Full Version : query on mutiple handlermapping configuration



rajubhv
Nov 23rd, 2010, 03:19 PM
We are using spring MVC 2.5 and currently have a dispatcher servlet using SimpleUrlHandlerMapping. And we are trying to add a new addon servlet using import which uses BeanNameUrlHandlerMapping.




dispatcherone-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlH andlerMapping">
<property name="order"><value>0</value></property>
<property name="interceptors">
<list>
<ref bean="logInterceptor" />
</list>
</property>
<property name="mappings">
<props>
<prop key="/home.page">HomePage</prop>
</props>
</property>
</bean>
<bean id="HomePage" class="com.test.productlist.HomePageController">
<property name="service" ref="service"></property>
</bean>
<import resource="addon-servlet.xml"/>
<beans>

addon-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<bean class="org.springframework.web.servlet.handler.BeanNameUr lHandlerMapping">
<property name="order"><value>1</value></property>
</bean>
<bean name="/products.page" class="com.test.productlist.ProductListController">
<property name="service" value="productService" />
</bean>
</beans>


But application is not reconizing products.page.

Is this proper way? Can we import an xml having new handler mappings?

Thanks in advance.

jerry.yan.mj
Nov 23rd, 2010, 03:40 PM
you do not actually need to have another xml. you can configure both in one xml and have the order set to tell which one to load first.

the order is a property in AbstractHandlerMapping.

rajubhv
Nov 23rd, 2010, 04:07 PM
thanks for the reply.

Triedn and not working even if i put in the same xml. And we are looking at importing this xml into different applications, that is the reason for not putting these definitions in the dispatcher servlet itself.



dispatcherone-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlH andlerMapping">
<property name="order"><value>0</value></property>
<property name="interceptors">
<list>
<ref bean="logInterceptor" />
</list>
</property>
<property name="mappings">
<props>
<prop key="/home.page">HomePage</prop>
</props>
</property>
</bean>
<bean id="HomePage" class="com.test.productlist.HomePageController">
<property name="service" ref="service"></property>
</bean>

<bean class="org.springframework.web.servlet.handler.BeanNameUr lHandlerMapping">
<property name="order"><value>1</value></property>
</bean>
<bean name="/products.page" class="com.test.productlist.ProductListController">
<property name="service" value="productService" />
</bean>

<beans>


Thanks

jerry.yan.mj
Nov 23rd, 2010, 05:15 PM
<bean
class="org.springframework.web.servlet.handler.SimpleUrlH andlerMapping">
<property name="interceptors">
<list>
<ref bean="measurementInterceptor" />
<ref bean="localeChangeInterceptor" />
</list>
</property>
<property name="mappings">
<props>
<prop key="/index.htm">welcomeController</prop>
<prop key="/main.htm">welcomeController</prop>
<prop key="/reservationSuccess.htm">
reservationSuccessController
</prop>
</props>
</property>
<property name="order" value="0" />
</bean>

<bean
class="org.springframework.web.servlet.mvc.support.Contro llerClassNameHandlerMapping">
<property name="interceptors">
<list>
<ref bean="measurementInterceptor" />
<ref bean="localeChangeInterceptor" />
</list>
</property>
<property name="caseSensitive" value="true" />
<property name="order" value="1" />
</bean>