DJViking
Aug 9th, 2007, 05:08 AM
In my working example of MultiActionController I use ParameterMethodNameResolver to handle the multiple actions. I want to use PropertiesMethodNameResolver so that all I need is to configure the actions in the spring context.
The following is how my spring context is set up (the one that works)
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResou rceViewResolver">
<property name="prefix" value="/jsp/"/>
<property name="suffix" value=".jsp"/>
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
</bean>
<bean id="methodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.Pa rameterMethodNameResolver">
<property name="paramName" value="action"/>
</bean>
<bean id="simpleUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlH andlerMapping">
<property name="urlMap">
<map>
<entry key="/Search" value-ref="search">
<entry key="/Service" value-ref="service"/>
</map>
</property>
</bean>
<bean id="service" class="controller.ServiceController">
<property name="methodNameResolver" ref="methodNameResolver"/>
</bean>
In the onSubmit of my SimpleFormController(/Search) I release controll to the MultiActionController like this.
return new ModelAndView(new RedirectView("Service"), "action", "newService");
This will call the method newService in ServiceController.
When I try PropertiesMethodNameResolver I get a 404 message, page does not exist.
<bean id="methodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.Pr opertiesMethodNameResolver">
<property name="mappings">
<props>
<prop key="NewService">newService</prop>
</props>
</property>
</bean>
Then return new ModelAndView(new RedirectView("NewService"))
So the /NewService URL does not work. Probably because simpleUrlMapping does not contain this pattern. How can i get /NewService to work exactly as /Service?action="newService"
The following is how my spring context is set up (the one that works)
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResou rceViewResolver">
<property name="prefix" value="/jsp/"/>
<property name="suffix" value=".jsp"/>
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
</bean>
<bean id="methodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.Pa rameterMethodNameResolver">
<property name="paramName" value="action"/>
</bean>
<bean id="simpleUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlH andlerMapping">
<property name="urlMap">
<map>
<entry key="/Search" value-ref="search">
<entry key="/Service" value-ref="service"/>
</map>
</property>
</bean>
<bean id="service" class="controller.ServiceController">
<property name="methodNameResolver" ref="methodNameResolver"/>
</bean>
In the onSubmit of my SimpleFormController(/Search) I release controll to the MultiActionController like this.
return new ModelAndView(new RedirectView("Service"), "action", "newService");
This will call the method newService in ServiceController.
When I try PropertiesMethodNameResolver I get a 404 message, page does not exist.
<bean id="methodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.Pr opertiesMethodNameResolver">
<property name="mappings">
<props>
<prop key="NewService">newService</prop>
</props>
</property>
</bean>
Then return new ModelAndView(new RedirectView("NewService"))
So the /NewService URL does not work. Probably because simpleUrlMapping does not contain this pattern. How can i get /NewService to work exactly as /Service?action="newService"