当前位置: 代码迷 >> 综合 >> @RequestMapping #RequestMapping注解:
  详细解决方案

@RequestMapping #RequestMapping注解:

热度:63   发布时间:2024-02-24 10:58:25.0

一、@RequestMapping可以作用在类上,也可以作用在方法上。

1、请求路径是单级目录,比如:

上面的例子只作用在方法上,没有作用在类上。

 

2、请求路径是多级目录,比如:

对应路径为:/a/b

 

二、value属性和path属性等价(互为别名),且值类型都为String[]。

示例:

@RequestMapping(path={"/toHello"})

=@RequestMapping(path="/toHello")    //"{}"里只有一个值时,"{}"可以省略

=@RequestMapping(value={"/toHello"})

=@RequestMapping(value="/toHello")    //"{}"里只有一个值时,"{}"可以省略

=@RequestMapping({"/toHello"})    //只设置value这一个属性时,"value="可以省略

=@RequestMapping("/toHello")    //"{}"里只有一个值时,"{}"可以省略

 

三、method属性,值类型为RequestMethod[]

示例:

@RequestMapping(value = "/a", method = RequestMethod.POST)

注意:<a>超链接的请求方式是GET

 

四、params属性,值类型为String[]

作用:用于指定请求必须满足的参数信息。

1、params里只有一个参数:

@RequestMapping(value = "/hello", params = "name")要求请求中必须有name属性,比如:<a href="/hello?name=Tom">toMike</a>。

@RequestMapping(value = "/hello", params = "name=Tom")要求请求中必须有name属性且其值必须为Tom,比如:<a href="/hello?name=Tom">toMike</a>,而<a href="/hello?name=Jack">toMike</a>和<a href="/hello">toMike</a>则不行!

@RequestMapping(value = "/hello", params = "name!=Tom")要求请求中如果有name属性的话,其值必须不能为Tom;如果没有name属性,当然也行!比如:<a href="/hello?name=Jack">toMike</a>或者<a href="/hello">toMike</a>,而<a href="/hello?name=Tom">toMike</a>则不行!

2、params里有多个参数:

@RequestMapping(value="/hello", params={"name=Tom", "age=20"})要求花括号的两个条件必须同时满足,

比如:<a href="/hello?name=Tom&age=20">toMike</a>,而<a href="/hello?name=Jack&age=20">toMike</a>则不行,缺少name或age当然也不行!

  相关解决方案