`

Spring MVC 学习笔记 五 controller与requestmapping

 
阅读更多

使用@controller定义controllers
Spring mvc将特定url的请求分发到controller类来进行处理
在spring 3.0中,通过@controller标注即可将class定义为一个controller类。为使spring能找到定义为controller的bean,需要在spring-context配置文件中增加如下定义

<context:component-scan base-package="net.zhepu.web" />

 使用@RequestMapping标注来关联url和controllers
  通过@RequestMapping标注,可以将特定的url和具体的controller类或controller类中的方法绑定。如

@Controller
@RequestMapping("/helloworld")
public class Helloworld {

	@RequestMapping(method=RequestMethod.GET)
	public ModelAndView hello() {
		ModelAndView mv = new ModelAndView();
		mv.setViewName("helloworld");
		return mv;
	}
}

 

将/hellowrold和 Hellowrold这个controller类绑定,而在hello()方法前的@RequestMapping(method=RequestMethod.GET)则将hello这个方法和/hellorworld.action的get请求绑定起来。

 

定义multiaction controllers
使用一个controller来处理多个action,称为multiaction controller。@RequestMapping标注并不要求一定放在class定义之前,而可以直接作为一个method level的标注来使用,当这样使用时,contorller类就变成了一个multiaction controller,例如

@Controller
public class MultiactionHelloworld {

	@RequestMapping("/hello1")
	public ModelAndView hello1(){
		ModelAndView mv = new ModelAndView();
		mv.setViewName("helloworld");
		return mv;		
	}
	
	@RequestMapping("/hello2")
	public ModelAndView hello2(){
		ModelAndView mv = new ModelAndView();
		mv.setViewName("helloworld");
		return mv;		
	}

 这里分别定义了两个方法hello1和hello2,对应的url为/hello1和/hello2

 

url template
@requestmapping参数中的url,除了常规的url外,也可以使用url template来定义形成类似REST请求的url。
例如

	@RequestMapping("/urltemplate/{username}")
	public ModelAndView test1(@PathVariable String username){
		ModelAndView mv = new ModelAndView();
		mv.addObject("userName", username);
		System.out.println(username);
		mv.setViewName("test002");
		return mv;		
	}
 

以上通过@PathVariable将入参中的username和userid分别与请求url中的{username}和{userid}的值做绑定

@requestmapping的可选参数
 value:表示需要匹配的url的格式。
 method:表示所需处理请求的http 协议(如get,post,put,delete等),可选值为RequestMethod这个enum的值。
 params:格式为”paramname=paramvalue” 或 “paramname!=paramvalue”。不带参数则表示paramvalue可以为任意值。
如params =  {"param1=1","param2!=2","param3"},表示对应的url必须包括param1,param2,param3三个参数,其中param1的值必须为1,param2的值不能为2,param3的值可以为任意值。
 headers:用来限定对应的reqeust请求的headers中必须包括的内容,例如
headers={"Connection=keep-alive"}, 表示请求头中的connection的值必须为keep-alive。

分享到:
评论

相关推荐

    Spring MVC 学习笔记 七 controller中其他可用的annotation

    这篇"Spring MVC 学习笔记 七 controller中其他可用的annotation"可能涵盖了除我们常见的`@RequestMapping`之外的其他注解,这些注解使得控制器功能更加丰富和灵活。下面将详细探讨Spring MVC中Controller相关的注解...

    Spring MVC学习笔记MD.7z

    这个压缩包“Spring MVC学习笔记MD.7z”包含了作者在学习Spring MVC过程中的笔记、源代码以及相关文档,非常适合初学者或希望深入理解Spring MVC的开发者。 首先,`SpringMVC-Study.7z` 可能是作者整理的Spring MVC...

    Spring MVC 学习笔记 十二 PDF/Excel格式输出

    本学习笔记主要围绕Spring MVC的使用、配置和核心组件进行深入探讨,旨在帮助开发者更好地理解和掌握这一框架。 在Spring MVC中,Model代表业务逻辑和数据,View负责数据的展示,而Controller处理用户请求,协调...

    Spring MVC 学习笔记

    **Spring MVC 学习笔记** Spring MVC 是 Spring 框架的一个模块,专门用于构建 Web 应用程序。它提供了一种模型-视图-控制器(MVC)架构,简化了开发过程,使得开发者可以专注于业务逻辑而不必过于关注底层的细节。...

    Spring MVC 学习笔记 一 创建项目

    **Spring MVC 学习笔记 一 创建项目** 在IT领域,Spring MVC是Java Web开发中的一个强大框架,它简化了构建交互式Web应用程序的过程。本笔记将深入探讨如何创建一个基本的Spring MVC项目,让我们开始吧。 首先,...

    spring MVC学习笔记

    在学习Spring MVC的过程中,我们首先需要了解的是控制器(Controller)的基本概念。控制器是处理用户请求并返回响应给用户的组件。在Spring MVC中,通过@Controller注解标记一个类为控制器。一个控制器类中可以包含...

    Spring MVC 学习笔记(一)

    **Spring MVC 学习笔记(一)** Spring MVC 是 Spring 框架的重要组成部分,它是一个用于构建 Web 应用程序的模型-视图-控制器(MVC)框架。Spring MVC 通过解耦应用程序的不同部分,使开发人员能够更轻松地进行...

    Spring MVC 学习笔记 十一 data binding

    本学习笔记将深入探讨Spring MVC中的数据绑定特性。 1. **数据绑定的基本概念** 数据绑定是Spring MVC中的一种核心功能,它允许我们将HTTP请求参数、JSON或XML数据自动映射到Java对象的属性上。这减少了手动提取...

    Spring MVC学习笔记之Controller查找(基于Spring4.0.3)

    总结来说,Spring MVC在处理请求时,通过`RequestMappingHandlerMapping`的初始化过程,扫描ApplicationContext中的bean,寻找标记有`@Controller`或`@RequestMapping`的类和方法,构建出映射关系,确保在实际处理...

    Spring3 MVC 学习笔记 入门

    ### Spring3 MVC 学习笔记入门知识点解析 #### 一、Spring MVC 概念与架构 **Spring MVC** 是 Spring Framework 的一个重要模块,主要用于构建基于 Web 的应用。它实现了 Model-View-Controller(MVC)设计模式,...

    spring_mvc学习笔记

    在Spring MVC的学习过程中,了解和掌握其核心概念与机制至关重要。Spring MVC是Spring框架的一个模块,主要用于构建Web应用程序。在Spring 3.0.x版本中,Spring MVC进行了大量的改进,引入了许多新特性和优化,使其...

    Spring MVC 学习笔记 十四 对locale和theme的支持

    这篇学习笔记将深入探讨这两个概念及其在实际开发中的应用。 1. **Locale(地区设置)支持** - `Locale`是Java中的一个类,用于表示特定的语言和地区。例如,`zh_CN`代表简体中文,`en_US`代表美国英语。 - ...

    基于注解的spring_3.0.x_MVC学习笔记

    在本篇基于注解的Spring 3.0.x MVC学习笔记中,我们将深入探讨Spring MVC在3.0版本中的变化,以及如何通过注解实现快速开发。Spring 3.0.x相较于2.5版本有着显著的改进,尤其在MVC模块上,提供了更加灵活和强大的...

    Spring MVC 配套资料

    本配套资料包含 SpringMvc 学习笔记与代码示例,是学习 Spring MVC 的宝贵资源。 一、Spring MVC 概述 Spring MVC 作为 Spring 框架的一部分,为开发可测试、模块化的 Web 应用提供了强大的支持。它简化了处理 ...

    spring mvc笔记

    Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建模型-视图-控制器(Model-View-Controller)架构的应用程序提供了强有力的支持。在本文中,我们将深入探讨Spring MVC的基本概念、工作原理以及如何使用它来...

    spring_mvc-学习

    这个压缩包文件“spring_mvc-学习”显然包含了关于Spring MVC的学习资料,可能是教程、代码示例或笔记。 在Spring MVC中,主要概念包括: 1. **DispatcherServlet**:作为Spring MVC的前端控制器,负责接收HTTP...

Global site tag (gtag.js) - Google Analytics