ParameterMethodNameResolver 用法(采用请求参数匹配方法名)

本文详细介绍了如何使用Spring MVC中的MultiActionController通过请求参数匹配控制器方法,并提供了具体的配置步骤及示例代码。

今天浏览项目,想通过请求的url找到对应的控制器,怎么搜索都搜索不到对应的requestmapping,经过一番查找,发现该项目用了MultiActionController的ParameterMethodNameResolver方式匹配控制器,即通过请求的参数匹配控制器中的方法。经过自己研究,实践如下:

思路:

1、配置 ParameterMethodNameResolver 的请求参数名(即 通过制定的请求参数名获取参数,从而转换成方法名)。

2、配置控制器,配置控制器需要注入ParameterMethodNameResolver 的bean,注入名称固定为methodNameResolver 这个可用从MultiActionController源码得到原因,

      由于控制器,初始化时需要装配(不会注解)所以只好用xml配置。

3,、编写控制需要继承MultiActionController,每个方法参数必须是(HttpServletRequest request,  HttpServletResponse response)这种类型,而且返回值只能是String ,modeAndview,void,四种(还有一种忘了)。


代码如下:

 <bean id="paramMethodResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
        <property name="paramName" value="fn"></property>    
 </bean>
<bean name="/mm.do" class="controller.methodNameResolverConterller">
   <property name="methodNameResolver">    //这个名称貌似是固定了,可以从MultiActionController源码中的构造函数中有该参数名
        <ref bean="paramMethodResolver"/>
   </property>
   </bean>
public class methodNameResolverConterller extends MultiActionController {
	

	public void teste(HttpServletRequest request,
            HttpServletResponse response){
		System.out.println("this is test1");
	}
	
	

http://localhost:8090/myweb_1/mm.do?fn=teste

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值