BeanNameUrlHandlerMapping:
这是默认的处理方式,controller配置的name属性为url
<bean id="beanNameUrlHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean> <bean name="/spring.do" class="controller.SpringController"></bean>
SimpleUrlHandlerMapping:
这种方式controller的<bean>中需要id属性,在配置是通过<props>可以把多个url映射到同一controller上,访问http://127.0.0.1:8080/SprintMVC/mvc2.do或者mvc1都可以放访问
<bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/mvc1.do">spring</prop> <prop key="/mvc2.do">spring </prop> <prop key="/mvc3.do"> spring</prop> </props> </property> </bean> <bean id="spring" class="controller.SpringController"></bean>
ControllerClassNameHandlerMapping:
根据类名称进行截取,删除Controller后缀,将前面的名字转为小写SpringController转换后为spring,该配置的后,访问的url为http://127.0.0.1:8080/SprintMVC/spring.do
<bean id="controllerClassNameHandlerMapping" class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean> <bean class="controller.SpringController"></bean
如果多个HandlerMapping都配置时,会从上到下执行,也可以设置Mapping的优先级,使用order属性,让其从下而上执行
<bean id="beanNameUrlHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"> <property name="order" value="3"></property> </bean> <bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/mvc1.do">spring</prop> <prop key="/mvc2.do">spring </prop> <prop key="/mvc3.do"> spring</prop> </props> </property> <property name="order" value="2"></property> </bean> <bean id="controllerClassNameHandlerMapping" class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"> <property name="order" value="1"></property> </bean>
AbstractCommandController:
在构造方法里绑定实体类,url访问时携带参数http://127.0.0.1:8080/SprintMVC/command.do?id=1&age=15&name=zhangsan
public class CommandController extends AbstractCommandController { @SuppressWarnings("deprecation") public CommandController() { //绑定实体类 super.setCommandClass(Person.class); super.setCommandName("person"); } @Override protected ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) throws Exception { Person p = (Person) command; System.out.println(p); return null; } }为了方便,Mapping都配置为ControllerClassNameHandlerMapping
相关推荐
在本篇博客“SpringMVC源码总结(一)HandlerMapping和HandlerAdapter入门”中,我们将探讨Spring MVC框架的核心组件——HandlerMapping和HandlerAdapter。这两个组件是Spring MVC处理请求的关键,它们负责映射HTTP...
本教程将深入探讨Spring MVC中的注解和非注解方式,帮助开发者更好地理解和运用这两种方法。 ### 一、注解方式 注解在Spring MVC中扮演了关键角色,它们允许开发者无需编写大量的XML配置文件,从而提高代码的...
在IT行业中,SpringMVC、Mybatis和注解是三个非常关键的技术概念,它们在构建高效、可维护的Web应用程序中发挥着重要作用。本实例结合这三个技术,将帮助开发者理解如何在实际项目中进行整合应用。 SpringMVC是...
- `Retail-web`:此模块可能是Web应用部分,包含SpringMVC的配置和实现,如`@Controller`类、视图解析器配置等。 5. **源码解析** SpringMVC的源码分析有助于深入理解其工作原理。例如,`HandlerMapping`和`...
springMVC相关技术配置使用注解的HandlerMapping和HandlerAdapter使用<mvc:annotation-driver> 不过springBoot已经省略了这些配置 配置使用注解的Handler和Service等等使用<context:component-scan> 不过springBoot...
SpringMVC的关键组件包括DispatcherServlet、ModelAndView、Controller、HandlerMapping和ViewResolver等。 MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC...
在这个"springmvc+hibernate注解框架整合 demo"项目中,你可以看到所有这些概念的实际应用,包括如何配置和使用注解来实现Spring MVC和Hibernate的整合。这个示例对于初学者来说是一个很好的起点,可以帮助他们理解...
SpringMVC利用注解简化了组件的配置,常见的注解包括: ##### 3.1 @Controller 用于标记处理HTTP请求的控制器类。例如: ```java @Controller @RequestMapping("/users") public class UserController { // 控制器...
Spring MVC允许全局和局部的异常处理,通过@ControllerAdvice和@ExceptionHandler注解,可以统一处理Controller中抛出的异常。 12. **RESTful支持**: Spring MVC支持创建RESTful服务,通过@RequestMapping注解...
3. HandlerMapping 返回 Controller 和可能的拦截器给 DispatcherServlet。 4. DispatcherServlet 使用 HandlerAdapter 调用 Controller。 5. Controller 执行并返回 ModelAndView。 6. HandlerAdapter 将 ...
在IT行业中,Spring MVC是一个广泛使用的Java Web框架,它通过注解简化了MVC(Model-View-Controller)模式的应用。本项目是一个模仿Spring MVC的雏形实现,旨在帮助初学者理解注解式编程和Servlet的基本工作原理。...
SpringMVC学习分享 SpringMVC是基于Java的Web应用程序框架,属于模型-视图-控制器(MVC)架构模式。它提供了一个灵活的方式来构建Web应用...HandlerMapping和ViewResolver是SpringMVC框架中的请求映射和视图解析组件。
- **配置SpringMVC**:在SpringMVC配置文件中设置视图解析器、HandlerMapping、Controller等。 - **编写Controller**:创建一个简单的Controller,用@Controller注解标识,添加处理方法,通常使用@RequestMapping...
2. **SpringMVC的配置** - **web.xml**:在部署描述符中配置DispatcherServlet,并设置初始化参数,如servlet上下文配置文件的位置。 - **servlet-context.xml**:SpringMVC的配置文件,定义HandlerMapping、...
SpringMVC 的主要组件包括 DispatcherServlet、HandlerMapping、Controller、ModelAndView 和 ViewResolver。 二、DispatcherServlet DispatcherServlet 是 SpringMVC 的前端控制器,它负责接收所有请求,并根据...
2. Controller:控制器是业务逻辑处理的地方,通常由实现了Controller接口或标注了@Controller注解的类来担当。 3. Model:模型对象承载业务数据,通过ModelAndView对象传递给视图。 4. View:视图负责将数据渲染成...
HandlerMapping则负责将请求映射到相应的处理器(Controller),例如,使用`@RequestMapping`注解可以定义URL到Controller方法的映射。ViewResolver则解析处理器返回的ModelAndView对象,决定如何呈现视图。 接下来...
在Spring 2.5版本中,引入了完全基于注解的配置,使得开发者能够更便捷地创建和管理Controller。 首先,我们来看一下Spring MVC的核心组件: 1. **DispatcherServlet**:前端控制器,它是所有HTTP请求的入口点。...
在这个"springmvc 入门小项目:CRUD"中,我们将探讨如何使用 SpringMVC 实现基本的数据库操作,即创建(Create)、读取(Read)、更新(Update)和删除(Delete)数据。 1. **SpringMVC 框架基础** - **...
- **处理器映射(Handler Mapping)**:Spring MVC 使用 HandlerMapping 来识别哪个 Controller 类和方法应该处理特定的请求。可以通过注解如 `@RequestMapping` 或其变体(如 `@GetMapping`, `@PostMapping` 等)来...