`
jiangnan2112
  • 浏览: 122251 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Spring中MethodNameResolver的学习笔记:MultiActionController

阅读更多
(摘自API)Spring提供了MultiActionController来将多个请求处理方法合并在一个控制器里,这样可以把相关功能组合在一起。 (如果你很熟悉Struts,会发现这与Struts的DispatchAction很像) MultiActionController位于org.springframework.web.mvc.multiaction包中,它可以定义页面请求到控制器方法名的映射, 然后在处理相应请求时调用该方法。当你有很多比较小的且相关的功能时使用MultiActionController很方便,这样就不必为每个小功能创建 一个单独的Controller了。但是一般来说MultiActionController不适合处理复杂逻辑,或者完全不相关 的功能,这时应该坚持使用标准方法,当在一个控制器存在大量公共的行为,但是有多个调用入口时,使用MultiActionController就特别方便。

MultiActionController有两种使用方式:一是创建MultiActionController的子类,并指定将被 MethodNameResolver解析的方法(这种情况下不需要这个delegate参数);二是定义一个委托对象, MethodNameResolver解析出目标方法后将调用该对象的相应方法。这种情况下需要定义MultiActionController 的实例并将委托对象作为协作者注入(可通过构造参数或者setDelegate方法)。

Spring提供的MethodNameResolver的三种方式:主要记录第一种MultiActionController类

1 : ParameterMethodNameResolver,这个可以根据请求的参数来确定一个需要调

用的方法。类继承MultiActionController
例如,http://localhost:8080/ASDS/showCpll.htm?action=pdfDownload,这个

请求会调用名称为pdfDownload的处理方法。public ModelAndView showCpll

(HttpServletRequest request,
HttpServletResponse response, PageExtNative

page)throws Exception
{}
<bean name="/showCpll.htm"      

class="com.adtech.adlib.asds.controller.systemsetting.ShowCpllControll

er">
<property name="methodNameResolver" ref="methodNameResolver" />
配置属性,这个属性在父类MultiActionController已提供,所以在

ShowCpllController类中不需要声明直接注入即可。不过在外面还要注入

methodNameResolver,它的类是

org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameRes

olver,根据参数选择方法。action就是参数,后接方法
<bean id="methodNameResolver"

class="org.springframework.web.servlet.mvc.multiaction.ParameterMethod

NameResolver">
<property name="paramName">
<value>action</value>
</property>
</bean>


2 : InternalPathMethodNameResolver,这个可以根据请求的路径名称来调用相

应的方法。
例如,http://www.sf.net/testing.view,这个请求会调用testing方法。

3 : PropertiesMethodNameResolver,这个可以根据一个URLs 映射列表来调用

相应的方法。
例如,如果定义了/index/welcome.html=doIt,那么当请求

为/index/welcome.html时,会调用doIt方法。在定义URLs时可以使用通配

符。/**/welcom?.html



分享到:
评论

相关推荐

    spring与struts的整合

    - **ContextLoaderPlugIn**:该插件用于初始化Spring的应用上下文,将Spring配置文件加载到内存中。这里的`contextConfigLocation`属性指定了Spring配置文件的位置。 ##### 2. 配置ContextLoaderListener ```xml ...

    Spring整合ibatis

    在Spring中配置数据源通常采用Apache Commons DBCP库中的`BasicDataSource`类。 ```xml &lt;property name="url" value="jdbc:oracle:thin:@10.129.255.215:1521:ORCL" /&gt; ``` - **重要配置项解释**: - `...

    spring URL配置

    `&lt;bean id="methodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"&gt;`定义了`methodNameResolver`,它是一个Spring MVC中的多动作控制器方法名解析器。...

    SPRING API 2.0.CHM

    MultiActionController MultipartActionRequest MultipartException MultipartFile MultipartFilter MultipartHttpServletRequest MultipartResolver MutablePersistenceUnitInfo MutablePropertyValues ...

    springMVC ppt

    综上所述,Spring MVC以其组件化的设计、强大的功能和灵活的配置,成为了Java Web开发中的主流框架之一,极大地提高了开发效率并降低了维护成本。通过深入理解和熟练运用Spring MVC,开发者可以构建出高效、稳定且...

Global site tag (gtag.js) - Google Analytics