[Spring MVC]学习笔记--@RequestMapping
@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的更多相关文章
- Spring MVC 学习笔记一 HelloWorld
Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...
- Spring MVC 学习笔记11 —— 后端返回json格式数据
Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...
- Spring MVC 学习笔记10 —— 实现简单的用户管理(4.3)用户登录显示全局异常信息
</pre>Spring MVC 学习笔记10 -- 实现简单的用户管理(4.3)用户登录--显示全局异常信息<p></p><p></p>& ...
- Spring MVC 学习笔记9 —— 实现简单的用户管理(4)用户登录显示局部异常信息
Spring MVC 学习笔记9 -- 实现简单的用户管理(4.2)用户登录--显示局部异常信息 第二部分:显示局部异常信息,而不是500错误页 1. 写一个方法,把UserException传进来. ...
- Spring MVC 学习笔记8 —— 实现简单的用户管理(4)用户登录
Spring MVC 学习笔记8 -- 实现简单的用户管理(4)用户登录 增删改查,login 1. login.jsp,写在外面,及跟WEB-INF同一级目录,如:ls Webcontent; &g ...
- Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建
Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...
- Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目
Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目 Spring Tool Suite 是一个带有全套的Spring相关支持功能的Eclipse插件包. ...
- 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 ...
- Spring MVC 学习笔记(整理)
SpringMVC学习 1.概述 Spring MVC是一种基于Java实现MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行解耦,基于请求-响应模型帮助我们 ...
- spring MVC学习笔记
为开发团队选择一款优秀的MVC框架是件难事儿,在众多可行的方案中决择需要很高的经验和水平.你的一个决定会影响团队未来的几年.要考虑方面太多: 1.简单易用,以提高开发效率.使小部分的精力在框架上,大部 ...
随机推荐
- 修改git的author 和 commiter
点击:Add Entry
- Oracle Database 11.2.0.4.0 已在 中标麒麟Linux x86-64 NeoKylin Linux Advanced Server 6 上通过认证
啥都不说了,上截图:
- Jquery DataTables 自定义布局sdom
Jquery DataTables 自定义布局sdom JQuery Datatable sDom 配置 官网给的描述是: This initialisation variable allows yo ...
- GCM与C2DM相比有什么不同
eoe介绍:http://wiki.eoe.cn/page/Migration.html 官方地址:http://developer.android.com/google/gcm/c2dm.html
- 【BIEE】17_仪表盘提示中值按顺序显示
我们在使用仪表盘提示的时候,常常会遇到这种问题,客户需要将一些常见的放在最上边,这样方便显示 例如:现在有数据库表如下 我们需要在提示中展示机构名称,我们如下新建提示 展示效果如下: 我们从上图可以看 ...
- Python 的函数
Python 函数: 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你 ...
- Android Shape 详解
1 http://blog.csdn.net/feng88724/article/details/6398193 2 <shape xmlns:android="http://sche ...
- Python课程之元组
元组(Tuple) 一.定义: 与列表(list)不同的是,元组不支持修改,但是若元组中的元素本身是可变对象,如列表,则可以修改.元素之间用逗号隔开,并且元素的类型可以任意. 二.操作: 1.创建:直 ...
- 转:nolock的替代方案-提交读快照隔离[行版本控制]
with(nolock)并意味着没有锁,实际上在查询一张表时,还是有锁,会对对象增加架构锁, 防止表会修改,会对数据库增加共享锁.若使用drop index,则要等到架构锁释放. sql serv ...
- 保存Hive查询结果的方法
很多时候,我们需要将Hive的查询(select)结果保存起来,方便进一步处理或查看.在Hive里面提供了不同的方式来保存查询结果,在这里做下总结: 一.保存结果到本地 方法1:调用hive标准输出, ...