在前面。已經可以利用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方法。