`

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配置方法源码

    spring mvc MultiActionController配置方法源码,可以部署到tomcat中访问

    搞定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操作...

    spring chm文档

    6.7. 编程方式创建@AspectJ代理 6.8. 在Spring应用中使用AspectJ 6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.7. 编程方式创建@AspectJ代理 6.8. 在Spring应用中使用AspectJ 6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的...

    springmvc_150814

    配置diapatcher servlet,和在application中配置请求转发mapping来处理请求,到某个controoler, cotroller继承MultiActionController,不用写dopost doget方法,直接在controller中写方法,方法名称来源于请求带过来...

    Spring 2.0 开发参考手册

    6.7. 编程方式创建@AspectJ代理 6.8. 在Spring应用中使用AspectJ 6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 ...

    Spring中文帮助文档

    6.7. 以编程方式创建@AspectJ代理 6.8. 在Spring应用中使用AspectJ 6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 ...

    Spring API

    6.7. 以编程方式创建@AspectJ代理 6.8. 在Spring应用中使用AspectJ 6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 ...

Global site tag (gtag.js) - Google Analytics