@RequestMapping

RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

@RequestMapping注解有六个属性:value、method、params、header、 consumes,produces

1、value:指定请求的实际地址 。

2、method:指定请求的method类型, GET、POST、PUT、DELETE等。

3、params:指定request中必须包含指定的参数值,才让该方法处理。

4、headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。

value和method是常用属性,params和headers属性了解即可。

案例:

1、value/method

value值:

①value的值为普通值,如value="helloworld"

②value的值含变量,如value="hellowrold/{id}"  此处使用了{}占位符来传递变量,可以使用@PathVariable注解取值,后面会有例子

当然value的值还可以为Ant风格或者是正则表达式,由于不是很常用,此处略过。

案例1:value值为普通值,method为GET请求方式

index.jsp

<a href="helloWorld">点击我跳转到hello.js页面</a>
 
 
HelloWorldController.java
 
package com.springmvc;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; @Controller
public class HelloWorldController { /**
* 1. 使用 @RequestMapping 注解来映射请求的 URL
* 2. 返回值会通过视图解析器解析为实际的物理视图, 对于 InternalResourceViewResolver 视图解析器, 会做如下的解析:
* 通过 prefix + returnVal + 后缀 这样的方式得到实际的物理视图, 然会做转发操作
*
* /WEB-INF/views/hello.jsp
*
* @return
*/
@RequestMapping(value="helloWorld",method=RequestMethod.GET)
public String helloWorld(){
System.out.println("Hello World");
return "hello";
}
}
 
 

案例2:value的值含变量,method为GET请求方式

index.jsp

<a href="requestMapping/Are you ok">传递参数</a>

HelloWorldController.java

 package com.springmvc;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class HelloWorldController { @RequestMapping(value="/requestMapping/{info}",method=RequestMethod.GET)
public String testRequestMapping(@PathVariable(value="info") String info){
System.out.println("info:"+info);
return "hello";
}
}
 
这个例子中用到了@PathVariable注解,该注解可以将URL中的占位符映射到目标方法的参数中。
 

案例3:value的值为普通值,method为POST请求方式

index.jsp

<form action="springmvc/testPostMethod" method="POST">
  <input type="submit" value="post请求" />
</form>
 
SpringMVCTest.java
 package com.springmvc;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@RequestMapping("/springmvc")
@Controller
public class SpringMVCTest {
private static String SUCCESS = "success"; @RequestMapping(value="testPostMethod",method=RequestMethod.POST)
public String testPostMethod(){
System.out.println("POST Request success");
return SUCCESS;
} }


 
2、params/headers
 
params和headers可以更加精确的映射请求,支持简单的表达式。
 
SpringMVCTest.java
 
 package com.springmvc;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@RequestMapping("/springmvc")
@Controller
public class SpringMVCTest {
private static String SUCCESS = "success"; /**
* 该方法处理同时满足以下条件
*1、 params中包含username参数并且age=10
*2、headers中Accept-Language参数值为zh-CN,zh;q=0.8
*的请求
*
* @return
*/
@RequestMapping(value="/testParamsAndHeader",params={"username","age=10"},headers={"Accept-Language=zh-CN,zh;q=0.8"})
public String testParamsAndHeader(){
System.out.println("Test Params and Header");
return SUCCESS;
} /**
* 该方法处理params中包含username参数并且age=10的请求
* @return
*/
@RequestMapping(value="/testParams",params={"username","age=10"})
public String testParams(){
System.out.println("Test Params");
return SUCCESS;
} }


 
 
 
 
 

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 学习笔记(二)

    6. 视图和视图解析器  ❤  Spring MVC如何解析视图                                  • 请求处理方法执行完成后,最终返回一个ModelAndView对象 ...

随机推荐

  1. Spark Netty与Jetty (源码阅读十一)

    spark呢,对Netty API又做了一层封装,那么Netty是什么呢~是个鬼.它基于NIO的服务端客户端框架,具体不再说了,下面开始. 创建了一个线程工厂,生成的线程都给定一个前缀名. 像一般的n ...

  2. python(30) 获取网页返回的状态码,状态码对应问题查询

    获取访问网页返回的状态码 html = requests.get(Url) respon = html.status_code 以下内容来自于维基百科:点击查看网页 1xx消息 这一类型的状态码,代表 ...

  3. Window服务安装方式汇总

    一.制作bat文件 1)Install.bat: @echo 安装服务 %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\installutil AppS ...

  4. 基于Angularjs+jasmine+karma的测试驱动开发(TDD)实例

    简介(摘自baidu) 测试驱动开发,英文全称Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法.它要求在编写某个功能的代码之前先编写测试代码,然 ...

  5. 基于hadoop的数据仓库工具:Hive概述

    Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行.其优点是学习成本低,可以通过类 ...

  6. Python多线程join的用法

    import threading, time def Myjoin(): print 'hello world!' time.sleep(1) for i in range(5): t=threadi ...

  7. LeetCode 396. Rotate Function

    Given an array of integers A and let n to be its length. Assume Bk to be an array obtained by rotati ...

  8. [杂] 将高版本iTunes备份恢复到低版本iOS设备中

    除非开发测试用设备,自用设备不要随便升iOS beta,不要随便升iOS beta,不要随便升iOS beta. 对于升级了高版本iOS的用户,默认情况下重刷低版本iOS时,iTunes不允许向低版本 ...

  9. 查看最点CPU的语句

    select c.last_execution_time,c.execution_count,c.total_logical_reads, c.total_logical_writes,c.total ...

  10. ajaxpro返回值类型总结-DataTable(转)

    ajaxpro使用总结系列其他内容 ajaxpro ajaxmethod 重载调用问题 ajaxpro方法ajaxmethod调用示例 ajaxpro返回值类型总结-string,int ajaxpr ...