@RequestMapping是用来将请求的url,映射到整个类,或者里面的方法。

@Controller
@RequestMapping("/test")
public class TestController {
private final TestService service; @Autowired
public TestController(TestService testService) {
this.service = testService;
} @RequestMapping(method = RequestMethod.GET)
public Map<String, Test> get() {
return service.getTests();
} @RequestMapping(value="/new", method=RequestMethod.GET)
public Test getNewTest() {
return new Test();
}
}

在URL中包含变量

@RequestMapping(value="/owners/{ownerId}", method=RequestMethod.GET)
public String findOwner(@PathVariable String ownerId, Model model) {
Owner owner = ownerService.findOwner(ownerId);
model.addAttribute("owner",owner);
return "displayOwner";
}

在URL的中使用变量名ownerId,当该方法处理请求时,会把url中ownerId的值传给ownerId。

如果变量名不一致的话,可以使用下面的方法。

@RequestMapping(value="/owners/{ownerId}", method=RequestMethod.GET)
public String findOwner(@PathVariable("ownerId") String theOwner, Model model) {
...
}

注意1:变量可以包含多个。

注意2:当用于Map<String,String>时,map用来存放所有的变量。

Matrix Variables使用

格式:/cars;color=red,green,blue;year=2014  变量之间用";", 值之间用",".

要使用Matrix Variables,首先要修改xml文件

<mvc:annotation-driven enable-matrix-variables="true"/>

多个参数例子

// GET /owners/2;q=1/pets/3;q=22
@RequestMapping(value="/owners/{ownerId}/pets/{petId}", method = RequestMethod.GET)
public void findPet(
@MatrixVariable(value="q",pathVar="ownerId") int q1,
@MatrixVariable(value="q",pathVar="petId") int q2) {
//q1 == 1
//q2 == 22
}

默认值

//Get /pets/42
@RequestMapping(value="/pets/{petId}",method=RequestMethod.GET)
public void findPet(@MatrixVariable(required=false, defaultValue="1") int q) {
// q == 1
}

获得所有matrix variables值

// GET /owners/42;q=11;r=12/pets/21;q=22;s=23
@RequestMapping(value = "/owners/{ownerId}/pets/{petId}", method = RequestMethod.GET)
public void findPet(
@MatrixVariable Map<String,String> matrixVars,
@MatrixVariable(pathVar="petId" Map<String,String> petMatrixVars) {
//matrixVars: ["q":[11,22], "r":12, "s":23]
//petMatrixVars: ["q": 11, "s" : 23]
}

指定条件

consumes: 只有当请求的Content-Type值为指定的值时,才进行处理。

@RequestMapping(..., consumes="application/json")

produces:只有当请求中的Accept值匹配指定的值时,才进行处理。

@RequestMapping(..., produces="application/json")

params:根据请求中的parameters来过滤

@RequestMapping(..., params="myParam=myValue")

注:表达式可以为"myParam", "!myParam", "myParam=myValue";分别表示存在,不存在,为特定值。

headers: 根据请求中的headers来过滤。(用法同params)

@RequestMapping(..., headers="myHeader=myValue")

注:如果是针对content-type的话,建议用consumes和produces。

@RequestParam

@RequestParam可以把request中的parameter绑定到method parameter。

例如xxx/pet?petId=4

@RequestMapping(value = "/pet")
public String test(@RequestParam("petId") int petId, ModelMap model) {
...
}

被标注了@RequestParam后,默认是必须的,可以增加required=false来标记,同时最好增加一个defaultValue的值。

[Spring MVC]学习笔记--@RequestMapping的更多相关文章

  1. Spring MVC 学习笔记一 HelloWorld

    Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...

  2. Spring MVC 学习笔记11 —— 后端返回json格式数据

    Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...

  3. Spring MVC 学习笔记10 —— 实现简单的用户管理(4.3)用户登录显示全局异常信息

    </pre>Spring MVC 学习笔记10 -- 实现简单的用户管理(4.3)用户登录--显示全局异常信息<p></p><p></p>& ...

  4. Spring MVC 学习笔记9 —— 实现简单的用户管理(4)用户登录显示局部异常信息

    Spring MVC 学习笔记9 -- 实现简单的用户管理(4.2)用户登录--显示局部异常信息 第二部分:显示局部异常信息,而不是500错误页 1. 写一个方法,把UserException传进来. ...

  5. Spring MVC 学习笔记8 —— 实现简单的用户管理(4)用户登录

    Spring MVC 学习笔记8 -- 实现简单的用户管理(4)用户登录 增删改查,login 1. login.jsp,写在外面,及跟WEB-INF同一级目录,如:ls Webcontent; &g ...

  6. Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建

    Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...

  7. Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目

    Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目 Spring Tool Suite 是一个带有全套的Spring相关支持功能的Eclipse插件包. ...

  8. Spring MVC 学习笔记1 - First Helloworld by Eclipse【& - java web 开发Tips集锦】

    Spring MVC 学习笔记1 - First Helloworld by Eclipse reference:http://www.gontu.org 1. 下载 Spring freamwork ...

  9. Spring MVC 学习笔记(整理)

    SpringMVC学习 1.概述 Spring MVC是一种基于Java实现MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行解耦,基于请求-响应模型帮助我们 ...

  10. spring MVC学习笔记

    为开发团队选择一款优秀的MVC框架是件难事儿,在众多可行的方案中决择需要很高的经验和水平.你的一个决定会影响团队未来的几年.要考虑方面太多: 1.简单易用,以提高开发效率.使小部分的精力在框架上,大部 ...

随机推荐

  1. ngrinder安装

    1.源码编译和部署 官网:http://naver.github.io/ngrinder/ 下载源码后,存在部分依赖库不在maven的远程仓库中,这是可以用下载jar包后,用以下命令打包到本地仓库: ...

  2. 奇怪也哉!做一个WebApp居然遇到了FF浏览器进不去某页的问题。

    一个小WebApp,原定login完后就进某页面.前天晚上之前一直在FF浏览器上调试,都正常. 前天晚上稍修改了,提交war上传,之后就休息了. 昨天晚上有些事情处理打开一看,乖乖,点登录后就在登陆页 ...

  3. Failed to read auto-increment value from storage engine

    今天在使用php artisan db:seed进行填充1000条数据时,出现如下错误Failed to read auto-increment value from storage engine 原 ...

  4. postman --发送json请求

    转自: http://blog.csdn.net/wangjun5159/article/details/47781301 简介: postman是一个很好的http模拟器,在测试rest服务时是很好 ...

  5. 8.1.2 绑定Activity和Service

    8.1.2 绑定Activity和Service 2010-06-21 16:57 李宁 中国水利水电出版社 字号:T | T <Android/OPhone开发完全讲义>第8章Andro ...

  6. curl 重定向问题

    今天在curl一个网站的时候遇到一个奇怪的问题,下面是输出: lxg@lxg-X240:~$ curl -L http://www.yngs.gov.cn/ -v * Hostname was NOT ...

  7. 利用python拼接图片

    问题描述: 将16张图片拼接成4x4的图片, 且不改变每单张图片的像素值. 代码如下: import os from PIL import Image path = '/share1/home/con ...

  8. WCF RIA Services使用详解(转载)

    理解领域服务和领域操作 本文目录: 3.1 WCF Ria Services简介 3.1.1 什么是WCF Ria Services 3.1.2 WCF Ria Services如何生成客户端代码 3 ...

  9. Yarn源码分析之事件异步分发器AsyncDispatcher

    AsyncDispatcher是Yarn中事件异步分发器,它是ResourceManager中的一个基于阻塞队列的分发或者调度事件的组件,其在一个特定的单线程中分派事件,交给AsyncDispatch ...

  10. UVA11082 Matrix Decompressing 最大流建模解矩阵,经典

    /** 题目:UVA11082 Matrix Decompressing 链接:https://vjudge.net/problem/UVA-11082 题意:lrj入门经典P374 已知一个矩阵的行 ...