`

SpringMVC 2:非注解常见HandlerMapping和Controller

 
阅读更多

 

 

 

 

 

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
<bean id="controllerClassNameHandlerMapping" class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
	</bean>
<bean id="command" class="controller.CommandController"></bean>
 

 SimpleFormController:

跟对get和post请求处理方式不同



 只有post提交,才会进入doSubmitAction()中

public class FormController extends SimpleFormController {
	public FormController() {
		this.setCommandClass(Person.class);
		this.setCommandName("person");
	}

	protected void doSubmitAction(Object command) throws Exception {
		Person p = (Person) command;
		System.out.println(p);
	}
}

 配置

	<bean id="simpleForm" class="controller.FormController">
		<property name="formView" value="person"></property>
		<property name="successView" value="springMVC"></property>
	</bean>

 

 

WizardFormController:

多个页面,和分页类似

 

 

 

 

 

 

 

 

  • 大小: 15.1 KB
分享到:
评论

相关推荐

    SpringMVC源码总结(一)HandlerMapping和HandlerAdapter入门

    在本篇博客“SpringMVC源码总结(一)HandlerMapping和HandlerAdapter入门”中,我们将探讨Spring MVC框架的核心组件——HandlerMapping和HandlerAdapter。这两个组件是Spring MVC处理请求的关键,它们负责映射HTTP...

    SpringMVC 注解和非注解demo

    本教程将深入探讨Spring MVC中的注解和非注解方式,帮助开发者更好地理解和运用这两种方法。 ### 一、注解方式 注解在Spring MVC中扮演了关键角色,它们允许开发者无需编写大量的XML配置文件,从而提高代码的...

    springMVC+Mybatis+注解

    在IT行业中,SpringMVC、Mybatis和注解是三个非常关键的技术概念,它们在构建高效、可维护的Web应用程序中发挥着重要作用。本实例结合这三个技术,将帮助开发者理解如何在实际项目中进行整合应用。 SpringMVC是...

    基于注解SpringMVC框架

    - `Retail-web`:此模块可能是Web应用部分,包含SpringMVC的配置和实现,如`@Controller`类、视图解析器配置等。 5. **源码解析** SpringMVC的源码分析有助于深入理解其工作原理。例如,`HandlerMapping`和`...

    springMVC技术概述

    springMVC相关技术配置使用注解的HandlerMapping和HandlerAdapter使用&lt;mvc:annotation-driver&gt; 不过springBoot已经省略了这些配置 配置使用注解的Handler和Service等等使用&lt;context:component-scan&gt; 不过springBoot...

    springboot学习、springmvc、mybatis、注解、拦截器.zip

    SpringMVC的关键组件包括DispatcherServlet、ModelAndView、Controller、HandlerMapping和ViewResolver等。 MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC...

    springmvc+hibernate注解框架整合 demo

    在这个"springmvc+hibernate注解框架整合 demo"项目中,你可以看到所有这些概念的实际应用,包括如何配置和使用注解来实现Spring MVC和Hibernate的整合。这个示例对于初学者来说是一个很好的起点,可以帮助他们理解...

    springMVC详解以及注解说明

    SpringMVC利用注解简化了组件的配置,常见的注解包括: ##### 3.1 @Controller 用于标记处理HTTP请求的控制器类。例如: ```java @Controller @RequestMapping("/users") public class UserController { // 控制器...

    看透SpringMVC:源代码分析与实践

    Spring MVC允许全局和局部的异常处理,通过@ControllerAdvice和@ExceptionHandler注解,可以统一处理Controller中抛出的异常。 12. **RESTful支持**: Spring MVC支持创建RESTful服务,通过@RequestMapping注解...

    23道SpringMVC常见面试题.docx

    3. HandlerMapping 返回 Controller 和可能的拦截器给 DispatcherServlet。 4. DispatcherServlet 使用 HandlerAdapter 调用 Controller。 5. Controller 执行并返回 ModelAndView。 6. HandlerAdapter 将 ...

    自己实现的雏形注解mvc(仿springmvc)

    在IT行业中,Spring MVC是一个广泛使用的Java Web框架,它通过注解简化了MVC(Model-View-Controller)模式的应用。本项目是一个模仿Spring MVC的雏形实现,旨在帮助初学者理解注解式编程和Servlet的基本工作原理。...

    SpringMVC学习分享.pptx

    SpringMVC学习分享 SpringMVC是基于Java的Web应用程序框架,属于模型-视图-控制器(MVC)架构模式。它提供了一个灵活的方式来构建Web应用...HandlerMapping和ViewResolver是SpringMVC框架中的请求映射和视图解析组件。

    spring和springMVC整合源码

    - **配置SpringMVC**:在SpringMVC配置文件中设置视图解析器、HandlerMapping、Controller等。 - **编写Controller**:创建一个简单的Controller,用@Controller注解标识,添加处理方法,通常使用@RequestMapping...

    springmvc框架搭建,已测试

    2. **SpringMVC的配置** - **web.xml**:在部署描述符中配置DispatcherServlet,并设置初始化参数,如servlet上下文配置文件的位置。 - **servlet-context.xml**:SpringMVC的配置文件,定义HandlerMapping、...

    SpringMVC PPT_springmvc_

    SpringMVC 的主要组件包括 DispatcherServlet、HandlerMapping、Controller、ModelAndView 和 ViewResolver。 二、DispatcherServlet DispatcherServlet 是 SpringMVC 的前端控制器,它负责接收所有请求,并根据...

    超级详细SpringMVC学习资料

    2. Controller:控制器是业务逻辑处理的地方,通常由实现了Controller接口或标注了@Controller注解的类来担当。 3. Model:模型对象承载业务数据,通过ModelAndView对象传递给视图。 4. View:视图负责将数据渲染成...

    Spring注解驱动开发实战-springMVC

    HandlerMapping则负责将请求映射到相应的处理器(Controller),例如,使用`@RequestMapping`注解可以定义URL到Controller方法的映射。ViewResolver则解析处理器返回的ModelAndView对象,决定如何呈现视图。 接下来...

    Spring mvc 注解理解

    在Spring 2.5版本中,引入了完全基于注解的配置,使得开发者能够更便捷地创建和管理Controller。 首先,我们来看一下Spring MVC的核心组件: 1. **DispatcherServlet**:前端控制器,它是所有HTTP请求的入口点。...

    springmvc入门小项目:CRUD

    在这个"springmvc 入门小项目:CRUD"中,我们将探讨如何使用 SpringMVC 实现基本的数据库操作,即创建(Create)、读取(Read)、更新(Update)和删除(Delete)数据。 1. **SpringMVC 框架基础** - **...

    springmvc_controller_03

    - **处理器映射(Handler Mapping)**:Spring MVC 使用 HandlerMapping 来识别哪个 Controller 类和方法应该处理特定的请求。可以通过注解如 `@RequestMapping` 或其变体(如 `@GetMapping`, `@PostMapping` 等)来...

Global site tag (gtag.js) - Google Analytics