在前面。已经可以利用SpringMVC进行简单的例子了,但是,在controller中我们实现了Controller接口。这样就必须实现handleRequest(HttpServletRequest request,HttpServletResponse response){}方法。从而spring才可以找到这个controller中的方法来运行。在日常的开发中我们有很多的方法需要实现,但不可能建很多的controller。那么就需要在一个controller中写多个方法。
当然了,如果使用注解的方式,那么就跟写Struts2的Action一样简便了,这里还是先使用XML配置方式吧,以后再聊基于注解的SpringMVC知识。
新建一个controller类名为MultiController。使其继承MultiActionController类。再在类中建立多个方法,
注意:在方法中需要传入两个参数HttpServletRequest和HttpServletResponse。
public class MulitControlle extends MultiActionController { public ModelAndView add(HttpServletRequest request,HttpServletResponse response){ System.out.println("-----add----"); return new ModelAndView("mulit","method","add"); } public ModelAndView update(HttpServletRequest request,HttpServletResponse response){ System.out.println("-----update----"); return new ModelAndView("mulit","method","update"); } }
最后在spring-servlet.xml中添加参数名称解释器:
<!-- 参数名称解析器 --> <bean id="paramMethodResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver" p:paramName="action" />
注意上面中的action,在下面解释。
配置完参数名称解析器后,配置我们请求的bean,在这里需要将参数解析器配置进去:
<bean name="/mulit" class="com.test.controlle.MulitControlle"> <property name="methodNameResolver"> <ref bean="paramMethodResolver" /> </property> </bean>
在WEB-INF/page下新建mulit.jsp:
<body> <h2>一个controller写多个方法</h2> 我是【${method}】方法.... </body>
最后我们访问页面如下:

看到请求地址,也许你已经明白了,“action=add”,action为参数名称解析器中配置的action,add为MultiController类中的add方法。