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

原创 2016年05月30日 17:30:52

今天浏览项目,想通过请求的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

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

PHPCMS伪静态时rewrite匹配参数超过10个的处理方法 分类信息伪静态

我们知道,在伪静态中 rewrite 只能定义到$9的,超过了便无效了,而实际使用中却有需要9个以上参数的时候,那么怎么来解决呢?详见下文分解。 RewriteRule反向引用 ,引用方法是:$N...

有关日期参数匹配数据库数据的方法

应用场景: 从前台传来一个时间段:开始日期 start (如2012-11-05) , 结束时间  end(如2012-11-15), 从数据库查询 从日期  start  到 日期end 之间所有符...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

根据java编译器规则在Class中搜索匹配指定参数类型表的泛型方法(GenericMethod)

因为项目的需要,设计了一个满足特定需要的代码自动生成工具。在开发过程中需要根据方法名和方法参数类型数组在指定的类中根据java编译器的规则找到与之最匹配的泛型方法。 例如,对下面这个类 ,调用tes...
  • 10km
  • 10km
  • 2015-09-23 14:49
  • 652

VC:va_list用法---隐含参数的使用方法

va_list用法---隐含参数的使用方法及IO使用说明 目的: 掌握VA_LIST用法 熟悉输入/出的实质,要建立起IO的概念,避免输入出停留在终端阶段 设计到IO设备,便一点设计到 阻塞、...

C++ template的一些高级用法(元编码,可变参数,仿函数,using使用方法,. C++ 智能指针)

C++ template的一些高级用法(元编码,可变参数,仿函数,using使用方法,. C++ 智能指针) 1 .  通用函数可变参数模板      对于有些时候,我们无法确切的知道...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)