spring mvc(2):请求地址映射(@RequestMapping)
来源:互联网 发布:全国自然保护区数据 编辑:程序博客网 时间:2024/06/06 07:17
spring mvc(2):请求地址映射(@RequestMapping)
Posted on 2014-08-15 21:35 Lychie Fan 阅读(3974) 评论(1) 编辑 收藏 所属分类: spring mvc@RequestMapping 参数说明
value定义处理方法的请求的 URL 地址。
method
定义处理方法的 http method 类型,如 GET、POST 等。
params
定义请求的 URL 中必须包含的参数。
headers
定义请求中 Request Headers 必须包含的参数。
@RequestMapping 的用法
@RequestMapping 有两种标注方式,一种是标注在类级别上,一种是标注在方法级别上。标注在方法上时,value 表示访问该方法的 URL 地址。标注在类上时,value 相当于一个命名空间,即访问该 Controller 下的任一方法都需
要带上这个命名空间。
ExampleController.java
@Controller
@RequestMapping("/example")
public class ExampleController {
@RequestMapping
public String execute(){
return "example_page";
}
@RequestMapping("/todo")
public String doSomething(){
return "example_todo_page";
}
}
/example.action@RequestMapping("/example")
public class ExampleController {
@RequestMapping
public String execute(){
return "example_page";
}
@RequestMapping("/todo")
public String doSomething(){
return "example_todo_page";
}
}
执行的是 execute() 方法。execute() 方法的 @RequestMapping 注解缺省 value 值,在这种情况下,当访问命名空间时默认执行的是这个
方法。方法级别上的 @RequestMapping 标注是必须的,否则方法无法被正确访问。
/example/todo.action
执行的是 doSomething() 方法。类级别上的 @RequestMapping 标注不是必须的,在不写的情况下,方法上定义的 URL 都是绝对地址,否则,
方法上定义的 URL 都是相对于它所在的 Controller 的。
@RequestMapping(method)
指定 method 的值
@RequestMapping(value = "/register", method = RequestMethod.GET)
public String register(){
return "example_register_page";
}
method 的值一旦指定,那么,处理方法就只对指定的 http method 类型的请求进行处理。 public String register(){
return "example_register_page";
}
@RequestMapping(value = "/register", method = RequestMethod.GET)
public String register1(){
return "example_register_get_page";
}
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String register2(){
return "example_register_post_page";
}
可以为多个方法映射相同的 URI,不同的 http method 类型,Spring MVC 根据请求的 method 类型是可以区分开这些方法的。public String register1(){
return "example_register_get_page";
}
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String register2(){
return "example_register_post_page";
}
当 /example/register.action 是以 GET 的方式提交的时候,Spring MVC 调用 register1() 来处理请求;若是以 POST 的方式提交,
则调 register2() 来处理提交的请求。
缺省 method 的值
@RequestMapping("/enter")
public String enter(){
return "example_enter_page";
}
method 若是缺省没指定,并不是说它默认只处理 GET 方式的请求,而是它可以处理任何方式的 http method 类型的请求。public String enter(){
return "example_enter_page";
}
指定 method 是为了细化映射 ( 缩小处理方法的映射范围 ),在 method 没有指定的情况下,它的映射范围是最大的。
@RequestMapping(params)
与 method 相类似,作用是为了细化映射。只有当 URL 中包含与 params 值相匹配的参数的请求,处理方法才会被调用。@RequestMapping(value = "/find", params = "target")
public String find1(){
return "example_find1_page";
}
@RequestMapping(value = "/find", params = "!target")
public String find2(){
return "example_find2_page";
}
@RequestMapping(value = "/search", params = "target=product")
public String search1(){
return "example_search1_page";
}
@RequestMapping(value = "/search", params = "target!=product")
public String search2(){
return "example_search2_page";
}
find1()public String find1(){
return "example_find1_page";
}
@RequestMapping(value = "/find", params = "!target")
public String find2(){
return "example_find2_page";
}
@RequestMapping(value = "/search", params = "target=product")
public String search1(){
return "example_search1_page";
}
@RequestMapping(value = "/search", params = "target!=product")
public String search2(){
return "example_search2_page";
}
请求的 URL 中必须要有 target 参数,才能够到达此方法。如 /example/find.action?target 或 /example/find.action?target=x 等
find2()
请求的 URL 中必须不能有 target 参数,才能够到达此方法。如 /example/find.action 或 /example/find.action?q=x 等
search1()
请求的 URL 中必须要有 target=product 参数,才能够到达此方法。如 /example/search.action?target=product 等
search2()
请求的 URL 中必须不能有 target=product 参数,才能够到达此方法。如 /example/search.action?target=article 等
@RequestMapping(headers)
headers 的作用也是用于细化映射。只有当请求的 Request Headers 中包含与 heanders 值相匹配的参数,处理方法才会被调用。@RequestMapping(value = "/specify", headers = "accept=text/*")
public String specify(){
return "example_specify_page";
}
请求的 Request Headers 中 Accept 的值必须匹配 text/* ( 如 text/html ),方法才会被调用。public String specify(){
return "example_specify_page";
}
源代码下载
springmvc-request-mapping.zip[ 随笔均原创,转载请注明出处:http://www.blogjava.net/fancydeepin ]
0 0
- spring mvc请求地址映射(@RequestMapping)
- spring mvc(2):请求地址映射(@RequestMapping)
- spring mvc(2):请求地址映射(@RequestMapping)
- spring mvc(2):请求地址映射(@RequestMapping)
- 请求地址映射(@RequestMapping)
- 请求地址映射(@RequestMapping)
- spring mvc 中使用 @RequestMapping 映射请求
- Spring MVC--2.@RequestMapping 映射请求
- 深入解读Spring Framework Web MVC(第四弹:使用@RequestMapping映射请求)
- Spring MVC系列(二)之@RequestMapping和URL映射
- SpringMVC学习(2):使用@RequestMapping映射请求方式
- SpringMVC源码(十)RequestMapping请求映射
- SpringMVC学习(二) @RequestMapping映射请求
- Spring注解@RequestMapping请求路径映射问题
- Spring注解@RequestMapping请求路径映射问题
- Spring MVC地址映射
- Spring MVC 学习手记(2)- @RequestMapping注解
- Spring MVC——基础(简介,使用,地址映射)
- test
- HDFS追本溯源:租约,读写过程的容错处理及NN的主要数据结构
- spring mvc(1):基础入门
- StringUtils方法全集
- 【Java】观察者模式总结
- spring mvc(2):请求地址映射(@RequestMapping)
- C语言:向排好序的数组中插入数据
- 人物评价网构想
- c之PAT刷题---删除字符串中的特定子串
- Prototype模式
- 自动跳转网站手机版脚本
- AES加密和解密实用版
- tomcat上json数据乱码问题的解决
- 第14周项目1-折腾二维数组