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
执行的是 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 类型的请求进行处理。 
@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 类型是可以区分开这些方法的。
当 /example/register.action 是以 GET 的方式提交的时候,Spring MVC 调用 register1() 来处理请求;若是以 POST 的方式提交,
则调 register2() 来处理提交的请求。

缺省 method 的值
@RequestMapping("/enter")
public String enter(){
    return "example_enter_page";
}
method 若是缺省没指定,并不是说它默认只处理 GET 方式的请求,而是它可以处理任何方式的 http method 类型的请求。
指定 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()
请求的 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 ),方法才会被调用。

源代码下载

springmvc-request-mapping.zip 






   [ 随笔均原创,转载请注明出处:http://www.blogjava.net/fancydeepin ]
 





0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 布鞋大了一码怎么办 鞋子买小了一码怎么办 运动鞋小了一码怎么办 帆布鞋小了一码怎么办 脚踝骨韧带断了怎么办 咖啡喝多了失眠怎么办 奥迪q7电瓶没电怎么办 一岁宝宝坐不稳怎么办 2岁宝宝不肯把尿怎么办 踢足球上肢和下肢不协调怎么办 ppt文字放映时重叠怎么办 月子8天腰背疼怎么办 生完五天腰背疼怎么办 生完孩子腰不好怎么办 养了个白眼狼怎么办 孩子学东西很慢怎么办 手不小心碰肿了怎么办 腿中间摩擦的疼怎么办 晚上睡觉时双腿酸胀怎么办 腿擦破皮了怎么办 快速好 宝宝腿擦破皮了怎么办 新生儿睡觉腿喜欢弯曲怎么办 孩子八个月交叉走路怎么办 胫椎引起双腿发热怎么办 婴儿头型睡扁了怎么办 膝盖抻筋了疼怎么办 小腿肚子抻筋了怎么办 后背抻筋了 很疼怎么办 运动膝盖抻着了怎么办 大腿内侧抻着了怎么办 大腿抻筋了 很疼怎么办 小腿肚子聚筋了怎么办 6个月婴儿腿弯怎么办 胳膊抻筋拉伤了怎么办 宝宝抻着了怎么办妙招 拎东西胳膊抻了怎么办 小臂一用力筋疼怎么办 摔破胳膊很痛怎么办 胳膊的筋扭伤了怎么办 小孩胳膊抻筋了怎么办 肩膀抻着了怎么办妙招