MultiActionController绑定command

本文介绍了SpringMVC框架下MultiActionController的使用方法,重点讲解了如何通过方法签名自动绑定command对象,以及配置methodNameResolver进行方法调度的过程。

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

dlpower:

一般只见到用SimpleFormController绑定command bean。
请问MultiActionController如何绑定command?

swiminthesea:

Spring MVC的MultiActionController比其它框架的DispatchAction之类的都要来得方便。
MultiActionController可以绑定任意的command,举个例子:

java 代码
  1. public class TestController extends MultiActionController      
  2. {      
  3. public ModelAndView insertAccount(HttpServletRequest request,HttpServletResponse response,Account account)      
  4. {      
  5. }      
  6.      
  7. public ModelAndView insertProduct(HttpServletRequest request,HttpServletResponse response,Product product)      
  8. {      
  9. }      
  10.             
  11. }  

 注意看上面的方法签名,第三个参数就是你要绑定的command,不需要做任何配置,方法签名里第三个参数指定是什么对象,MultiActionController就会给你绑定什么对象。

 

首先在bean.xml里面:

xml 代码
  1. <bean id="methodNameResolver"    
  2. class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">    
  3. <property name="paramName"><value>method</value>    
  4. </property>    
  5. <property name="defaultMethodName"><value>view</value>    
  6. </property>    
  7. </bean>  
  8.   
  9. <bean name="/jsp/test.do" class="org.nightwalker.spaces.web.controller.TestController">    
  10. <property name="methodNameResolver">    
  11. <ref local="methodNameResolver"/>    
  12. </property>    
  13. </bean>  
  14.   

配置呢就这么简单。methodNameResolver指定了调用MultiActionController中方法的方式,例如,如果在你的MultiActionController中有如下方法:
public ModelAndView insertAccount(HttpServletRequest request,HttpServletResponse,Account account)
{
}

那么要调用这个方法,你的JSP页面的请求URL就应该这样写:

xml 代码
  1. <form action="test.do?method=insertAccount">    
  2. </form>  

至于绑定什么command和JSP是没有关系的。你在MultiActionController中的方法签名第三个参数是什么对象,Spring就会把request中参数的值绑定到方法签名的第三个对象中。

江南白衣:

不过在他的源码里有说明 -“--靠第3个参数来绑定比较缺乏灵活性,还是建议你调用它的bind()函数来绑定”。

当然,如果没有要特殊处理的属性,比如Book的Category属性,CoverImage属性,也没啥校验,可以简单的用第三个参数来绑定,又少了一行代码,善哉善哉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值