一、   实现一个Controller多个方法

           1、controller继承MutliActionController

            

publicclass SpringController extends MultiActionController{
                 }

                   

           2、在spring_mvc.xml配置一个多请求的bean

    

<bean id="parameNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
                          <property name="paramName" value="userCotroller"/>
                </bean>

                注:这个bean有一个属性paramName,它的作用是相当以一个传递参数。比如要访问SpringController中的add()方法,那这里我们的

?userCotroller=add。而已该属性的value值是随意的。

               

          3、将SpringController交给spring容器管理

          

<bean name="/springController" class="controller.SpringController">
                          <property name="methodNameResolver" ref="parameNameResolver"/>
                </bean>

                这里,name是为访问该类是设置访问路径。而且为SpringController注入一个paramName  Bean,这个bean是继承了

MutliActionController后自带的属性 。它映射向多请求的bean。

 

         4、在SpringController类中添加方法

            

publicclass SpringController extends MultiActionController{
                
                        public ModelAndView add(HttpServletRequest request,HttpServletResponse response){
                                ModelAndView mv = new ModelAndView();
                                mv.addObject("message","this is a add method");
                                mv.setViewName("/helloWorld");
                                return mv;
                         }
                         
                         public ModelAndView delete(HttpServletRequest request,HttpServletResponse response){
                                 ModelAndView mv = new ModelAndView();
                                 mv.addObject("message","this is a delete method");
                                 mv.setViewName("/helloWorld");
                                 return mv;
                         }
                }

struct的Action方法差不多,但注意的是方法中要有HttpServlerRequest,和HttpServlerResponse(这个方法也可以

                没有)参数。

               

          5、测试:

add方法:http://localhost:8080/springMVC/springController?userCotroller=add

                调用delete方法:http://localhost:8080/springMVC/springController?userCotroller=delete

 

                PS:spring_mvc.xml

                

springmvc 调用其它后端 springmvc调用controller_springmvc 调用其它后端

二、用注解实现

        1、添加spring_mvc.xml命名空间context、mvc

              

springmvc 调用其它后端 springmvc调用controller_多方法_02

              这里我用的是spring3.2,但配置mvc命名空间的时间,只能用mvc-3.1.xsd(不知道原因)

             

        2、在配置文件中配置spring的扫描机制

<context:component-scan base-package="controller"/>

              base-package表示要扫描哪些包,如果有多个包的话,用逗号分开。配置完扫描机制后,在SpringController类中添加@Component,

spring扫描机制会把该类交给spring容器管理。同时我们可以删去之前我们为该类配置的bean。

 

        3、开启spring mvc的注解

          

<mvc:annotation-driven/>

              开启这个注解后,我们就可以删掉之前配置的多个请求的bean。开启后,spring mvc自动我们实现多配置功能。

             

        4、修改SpringController类

      

@Component
              @RequestMapping(value="/springController")
              publicclass SpringController extends MultiActionController{
    
                  @RequestMapping(value="/add", method=RequestMethod.POST)
                  public ModelAndView add(){
                       ModelAndView mv = new ModelAndView();
                       mv.addObject("message","this is a add method");
                       mv.setViewName("/helloWorld");
                       return mv;
                  }
                  @RequestMapping(value="/delete")
                  public ModelAndView delete(){
                       ModelAndView mv = new ModelAndView();
                       mv.addObject("message","this is a delete method");
                       mv.setViewName("/helloWorld");
                       return mv;
                  }
             }

             这里用@RequesrMapping的注解来标示要访问的路径,其属性value表示访问路径,method表示这个方法只能有哪些提交方法可以访

HttpServlerRequest,和HttpServlerResponse参数。但有时需要用到这两

ModelAndView作为参数返回(直接返回字符串作为逻辑视图

             return“/helloWorld”;)。那么我们要返回从业务处理后的数据,就必须用到HttpServlerRequest传参。因为我认为以ModelAndView做

ModelAndView返回

 

       5、测试:

add方法:http://localhost:8080/springMVC/springController/add

             调用delete方法:http://localhost:8080/springMVC/springController/delete

             此时可以看到,我们的访问方式与上面例子不一样,这里是不带参数的。

             PS:spring_mvc.xml

                

springmvc 调用其它后端 springmvc调用controller_mvc_03