Spring MVC 入门 @ MultiActionController

来源:互联网 发布:java的内存机制 编辑:程序博客网 时间:2024/06/10 02:48

在用过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方法了