在用过Spring的mvc之后就想找个方式象struts那样通过参数调用方法结果我找到了MultiActionController,它的
配置比起其他Controller稍微复杂.
<!-- 定义映射-->
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="multiAction.do">multiActionController</prop>
</props>
</property>
</bean>
<!-- 定义视图 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass">
<value>org.springframework.web.servlet.view.InternalResourceView</value>
</property>
</bean>
<!-- MultiActionController(调用相关方法处理) -->
<bean id="multiActionController" class="org.springframework.web.servlet.mvc.multiaction.MultiActionController">
<property name="methodNameResolver"><ref bean="paramResolver"/></property>
<property name="delegate"><ref bean="paramDelegate"/></property>
</bean>
<!-- 参数解析器 -->
<bean id="paramResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
<property name="paramName"><value>method</value></property>
</bean>
<!-- 委托对象(方法放置于委托对象当中,方法访问权限应为public{其他则无法访问,如protected}) -->
<bean id="paramDelegate" class="com.mvc.MultiActionController">
<property name="helloWorld">
<value>MultiActionController --- HelloWorld</value>
</property>
<property name="viewPage">
<value>/WEB-INF/jsp/index.jsp</value>
</property>
</bean>
public class MultiActionController{
private String helloWorld;
private String viewPage;
//通过委托对象来调用方法
public ModelAndView HelloWorld(HttpServletRequest request,HttpServletResponse response) throws Exception {
Map<String,String> model = new HashMap<String,String>();
model.put("helloWorld",getHelloWorld());
return new ModelAndView(getViewPage(),model);
}
public String getHelloWorld() {
return helloWorld;
}
public void setHelloWorld(String helloWorld) {
this.helloWorld = helloWorld;
}
public String getViewPage() {
return viewPage;
}
public void setViewPage(String viewPage) {
this.viewPage = viewPage;
}
}
通过/multiAction.do?method=HelloWorld就可以调用HelloWorld方法了