springMVC中一个class中的多个方法

时间:2022-06-14 16:12:54

在前面。已经可以利用SpringMVC进行简单的例子了,但是,在controller中我们实现了Controller接口。这样就必须实现handleRequest(HttpServletRequest request,
   HttpServletResponse response){}方法。从而spring才可以找到这个controller中的方法来运行。在日常的开发中我们有很多的方法需要实现,但不可能建很多的controller。那么就需要在一个controller中写多个方法。

在建好项目后,先建立一个controller。使其继承MultiActionController类。再在类中建立多个方法,注意:在方法中需要传入两个参数HttpServletRequest和HttpServletResponse。

如下:

public ModelAndView add(HttpServletRequest request,HttpServletResponse response){
  System.out.println("-----add-------");
  return new ModelAndView("/multi","methodName","add");
  
 }
 public ModelAndView update(HttpServletRequest request,HttpServletResponse response){
  System.out.println("-----update-------");
  return new ModelAndView("/multi","methodName","update");
  
 }

最后在springMVC的配置文件中进行配置

先配置参数名称解析器:

<!-- 参数名称解析 -->
 <bean id="paramMethodResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
  <property name="paramName" value="action"></property>
 </bean>

注意上面中的action在下面解释。

配置完参数名称解析器后,配置我们常用的bean

<bean name="/test/multi" class="com.yx.controller.MultiController">
  <property name="methodNameResolver">
   <ref bean="paramMethodResolver"/>
  </property>
 </bean>

在这里需要将参数解析器配置进去。

最后我们访问页面如下:

springMVC中一个class中的多个方法

在这里看到有一个“action=update”,action为参数名称解析器中配置的action,update为MultiController类中的update方法。