- 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的前缀也需要写进去. 这是我测试的结果,不知是否必须这样.
分享到:
相关推荐
尽管如此,理解`MultiActionController`的配置和工作原理对于理解Spring MVC的历史以及如何向更现代的实践迁移仍然是有益的。 `MultiActionController`是Spring MVC中的一个抽象类,它继承自`AbstractController`。...
Controller是处理业务逻辑的组件,而MultiActionController就是其中一种控制器实现。 MultiActionController的工作原理是基于方法名映射。它会将HTTP请求的URL与类中的方法进行匹配,如果方法名与请求路径匹配,...
- 配置MultiActionController,它允许单个控制器处理多个请求方法,通过`ParameterMethodNameResolver`解析请求参数中的方法名。 - 配置ViewResolver,例如InternalResourceViewResolver,用于解析视图名称到具体...
随着Spring的发展,越来越多的开发者倾向于使用基于注解或Java配置的方式来定义Bean,这种方式更加简洁且易于维护。 #### 九、属性参考与自动绑定 Spring支持属性的引用和自动绑定功能,这意味着可以通过简单的...
在Spring MVC的配置文件中,你需要确保DispatcherServlet知道如何处理MultiActionController。这通常涉及到定义一个bean,指定它的类型为MultiActionController,并配置URL映射。此外,还需要配置视图解析器,以便...
可以通过验证文件扩展名、限制上传大小、使用安全的文件命名策略等方式来增强安全性。 总的来说,`springMVC带上传文件`的功能实现涉及到了Spring MVC的控制器、模型、视图解析器的配置,以及文件上传的相关处理。...
本示例将深入探讨`SimpleFormController`和`MultiActionController`这两种控制器在Spring MVC中的应用。 首先,`SimpleFormController`是Spring MVC早期版本中提供的一个抽象控制器,主要用于处理表单提交。它内置...
MultiActionController配置示例 ```xml <value>method <value>findUser ``` - **MultiActionController**:在Struts中,一个Action可以对应多个处理方法。这里通过`DispatchController`实现...
- **配置Log4j**:创建一个名为`log4j.properties`或`log4j.xml`的配置文件,定义日志级别(DEBUG、INFO、WARN、ERROR、FATAL)、输出目的地及格式。例如,你可以设置INFO及以上级别的日志写入文件,DEBUG级别日志...
12.4.1 Hibernate的两种配置方式 12.4.2 配置数据库连接池 12.4.3 使用JNDI 12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO...
12.4.1 Hibernate的两种配置方式 12.4.2 配置数据库连接池 12.4.3 使用JNDI 12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO...
12.4.1 Hibernate的两种配置方式 12.4.2 配置数据库连接池 12.4.3 使用JNDI 12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO...
12.4.1 Hibernate的两种配置方式 12.4.2 配置数据库连接池 12.4.3 使用JNDI 12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO...
4 使用MultiActionController 5 所有service利用spring注入到controller中,利用注解 6 数据库连接串单独在properties文件配置 7 在spring中配置数据源,属性使用properties文件中的配置 8 利用JdbcTemplate操作...
### SpringMVC教程及其实现原理 #### 一、SpringMVC概述 SpringMVC是Spring框架...综上所述,SpringMVC作为一种轻量级的Web框架,不仅提供了强大的功能支持,还具有高度的灵活性和扩展性,非常适合构建现代Web应用。
3. **配置请求映射**:在Spring的配置文件中,你需要为每个处理方法指定一个请求映射,通常是通过`<bean>`标签的`property`属性来完成的,例如`<property name="mapping" value="/addUser.htm" />`。 4. **执行逻辑*...
不过,随着Spring MVC的发展,这种方式已经被注解驱动的Controller所取代,但理解这种旧的控制器模式对于了解Spring MVC的历史和演变是有帮助的。 5. **handler-mappings.xml** 这是Spring的配置文件,可能包含了...
本文主要介绍如何利用注解来配置Spring MVC,替代传统的基于XML的配置方式。 1. **Controller的定义与管理**: 在传统的Spring MVC中,Controller通常需要实现`org.springframework.web.servlet.mvc.Controller`...
- **高级读取**:除了基本的XML配置文件外,Spring还支持多种其他方式来定义和读取bean,例如使用注解(@Component、@Service、@Repository等)、Java配置类等。 - **示例**:定义一个包含多个bean的XML配置文件,并...
- **推荐使用**:建议每个请求对应一个控制器,对于复杂的流程可以考虑使用 `MultiActionController`。 #### 六、总结 Spring MVC 是一个高度灵活且功能强大的 Web 开发框架,它简化了 Web 应用程序的开发过程,...