`

MultiActionController 配置的三种方式

阅读更多
  • ParameterMethodNameResolver
  • InternalPathMethodNameResolver
  • PropertiesMethodNameResolver
定义一个Controller继承与MultiActionController

package cn.iwoo.server.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

public class BController extends MultiActionController {
	public ModelAndView doSearch(HttpServletRequest request, HttpServletResponse response) throws Exception {
		System.out.println(this.getClass() + "." + "doSearch()");
		return new ModelAndView("");
	}
}



方法的定义必须符合下面的格式
Java代码 
public (ModelAndView | Map | String | void) actionName(HttpServletRequest request, HttpServletResponse response);  


定义ViewResolver
Java代码 

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value></property>
        <property name="prefix"><value>/WEB-INF/jsp/</value></property>
        <property name="suffix"><value>.jsp</value></property>
    </bean>


定义UrlHandlerMapping

 
  <bean id="urlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
		<property name="urlMap">
			<map>
				<entry key="/b/*"><ref bean="bController"></ref></entry>
			</map>
		</property>
    </bean>


定义MethodNameResolver
一共定义了3个不同类型的MethodNameResolver.
	<!-- MethodNameResolver Definition -->
	<bean id="bMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
		<property name="paramName" value="method"></property>
		<property name="logicalMappings">
			<props>
				<prop key="doSearch">doSearch</prop>
			</props>
		</property>
	</bean>
	
	<bean id="cMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.InternalPathMethodNameResolver">
	</bean>
		
	<bean id="dMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">
	    <property name="mappings">
	        <value>
	            /b/page.html=doSearch
	        </value>
	    </property>
	</bean>



定义Controller


	<!-- Controller Definition -->
	<bean id="bController" class="cn.iwoo.server.controller.BController">
    	<!-- <property name="methodNameResolver"><ref local="bMethodNameResolver"/></property> -->
    	<!-- <property name="methodNameResolver"><ref local="cMethodNameResolver"/></property> -->
    	<property name="methodNameResolver"><ref local="dMethodNameResolver"/></property>
    </bean>

测试
下面是对应于不同MethodNameResolver的测试url.

http://localhost:9080/cn.iwoo/spring/b?method=doSearch
http://localhost:9080/cn.iwoo/spring/b/doSearch
http://localhost:9080/cn.iwoo/spring/b/page.html

注:/b/是我的controller的映射前缀,在PropertiesMethodNameResolver的mappings配置里面,网址必须是/b/开头,也就是controller的前缀也需要写进去. 这是我测试的结果,不知是否必须这样.

分享到:
评论

相关推荐

    spring mvc MultiActionController配置方法源码

    尽管如此,理解`MultiActionController`的配置和工作原理对于理解Spring MVC的历史以及如何向更现代的实践迁移仍然是有益的。 `MultiActionController`是Spring MVC中的一个抽象类,它继承自`AbstractController`。...

    SpringMVC - MultiActionController

    Controller是处理业务逻辑的组件,而MultiActionController就是其中一种控制器实现。 MultiActionController的工作原理是基于方法名映射。它会将HTTP请求的URL与类中的方法进行匹配,如果方法名与请求路径匹配,...

    SpringMVC配置

    - 配置MultiActionController,它允许单个控制器处理多个请求方法,通过`ParameterMethodNameResolver`解析请求参数中的方法名。 - 配置ViewResolver,例如InternalResourceViewResolver,用于解析视图名称到具体...

    spring 技术手册

    随着Spring的发展,越来越多的开发者倾向于使用基于注解或Java配置的方式来定义Bean,这种方式更加简洁且易于维护。 #### 九、属性参考与自动绑定 Spring支持属性的引用和自动绑定功能,这意味着可以通过简单的...

    spring mvc_04

    在Spring MVC的配置文件中,你需要确保DispatcherServlet知道如何处理MultiActionController。这通常涉及到定义一个bean,指定它的类型为MultiActionController,并配置URL映射。此外,还需要配置视图解析器,以便...

    springMVC带上传文件

    可以通过验证文件扩展名、限制上传大小、使用安全的文件命名策略等方式来增强安全性。 总的来说,`springMVC带上传文件`的功能实现涉及到了Spring MVC的控制器、模型、视图解析器的配置,以及文件上传的相关处理。...

    Spring MVC 例子

    本示例将深入探讨`SimpleFormController`和`MultiActionController`这两种控制器在Spring MVC中的应用。 首先,`SimpleFormController`是Spring MVC早期版本中提供的一个抽象控制器,主要用于处理表单提交。它内置...

    spring与struts的整合

    MultiActionController配置示例 ```xml &lt;value&gt;method &lt;value&gt;findUser ``` - **MultiActionController**:在Struts中,一个Action可以对应多个处理方法。这里通过`DispatchController`实现...

    web项目log4j简单案例

    - **配置Log4j**:创建一个名为`log4j.properties`或`log4j.xml`的配置文件,定义日志级别(DEBUG、INFO、WARN、ERROR、FATAL)、输出目的地及格式。例如,你可以设置INFO及以上级别的日志写入文件,DEBUG级别日志...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    12.4.1 Hibernate的两种配置方式 12.4.2 配置数据库连接池 12.4.3 使用JNDI 12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    12.4.1 Hibernate的两种配置方式 12.4.2 配置数据库连接池 12.4.3 使用JNDI 12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    12.4.1 Hibernate的两种配置方式 12.4.2 配置数据库连接池 12.4.3 使用JNDI 12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO...

    《程序天下:J2EE整合详解与典型案例》光盘源码

    12.4.1 Hibernate的两种配置方式 12.4.2 配置数据库连接池 12.4.3 使用JNDI 12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO...

    springmvcdemo

    4 使用MultiActionController 5 所有service利用spring注入到controller中,利用注解 6 数据库连接串单独在properties文件配置 7 在spring中配置数据源,属性使用properties文件中的配置 8 利用JdbcTemplate操作...

    SpringMVC教程及实现原理

    ### SpringMVC教程及其实现原理 #### 一、SpringMVC概述 SpringMVC是Spring框架...综上所述,SpringMVC作为一种轻量级的Web框架,不仅提供了强大的功能支持,还具有高度的灵活性和扩展性,非常适合构建现代Web应用。

    spring mvc_03

    3. **配置请求映射**:在Spring的配置文件中,你需要为每个处理方法指定一个请求映射,通常是通过`&lt;bean&gt;`标签的`property`属性来完成的,例如`&lt;property name="mapping" value="/addUser.htm" /&gt;`。 4. **执行逻辑*...

    spring-ext-handler-mapping.rar_ext_spring ext_spring mvc

    不过,随着Spring MVC的发展,这种方式已经被注解驱动的Controller所取代,但理解这种旧的控制器模式对于了解Spring MVC的历史和演变是有帮助的。 5. **handler-mappings.xml** 这是Spring的配置文件,可能包含了...

    spring_mvc注解入门

    本文主要介绍如何利用注解来配置Spring MVC,替代传统的基于XML的配置方式。 1. **Controller的定义与管理**: 在传统的Spring MVC中,Controller通常需要实现`org.springframework.web.servlet.mvc.Controller`...

    Spring入门

    - **高级读取**:除了基本的XML配置文件外,Spring还支持多种其他方式来定义和读取bean,例如使用注解(@Component、@Service、@Repository等)、Java配置类等。 - **示例**:定义一个包含多个bean的XML配置文件,并...

    Spring MVC

    - **推荐使用**:建议每个请求对应一个控制器,对于复杂的流程可以考虑使用 `MultiActionController`。 #### 六、总结 Spring MVC 是一个高度灵活且功能强大的 Web 开发框架,它简化了 Web 应用程序的开发过程,...

Global site tag (gtag.js) - Google Analytics