一、@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当然也不行!