Spring MVC 入门 @ MultiActionController

本文介绍如何在Spring MVC中使用MultiActionController实现通过URL参数调用不同方法的功能。通过配置映射、视图解析器及参数解析器,使得一个Controller能够响应多种请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值