RequestMapping注解类
一、RequestMapping注解类的使用方法
•开发Controller控制器类,使用@Controller注解标注,并在配置文件中用<context:component-scan/>扫描
•在Controller控制器类的类定义和方法定义处都可以标注@RequestMapping注解
•DispatcherServlet截获请求后,就可以通过控制器上的@RequestMapping提供的映射信息确定请求所对应的处理方法
RequestMapping注解类的属性,分别有value, method, consumes, produces, params, headers
这里介绍value属性:
•代表具体的请求路径,比如上面的 /user, /login都是value的值
•value可以省略,就像例子中一样,直接用@RequestMapping("/login") 的格式,它等同于@RequestMapping(value ="/login")
这里介绍method属性:
•指定请求的method类型, GET、POST、PUT、DELETE等
•例:@RequestMapping(value = "/login", method =RequestMethod.POST) 那么只有发送POST请求才会触发这个方法
•例:@RequestMapping(value = "/login", method ={RequestMethod.POST, RequestMethod.GET})
介绍consumes属性:
•指定请求的提交内容类型(Content-Type),例如application/json,text/html
•它的值既可以是字符串也可以是数组
这里介绍produces属性:
•指定请求中必须包含某些参数值,才会触发这个处理方法。
这里介绍params属性:
•指定请求中必须包含某些参数值,才会触发这个处理方法
•参数中除了使用=等号外,还可以使用!=号,表示在参数的值不等于的情况下触发这个方法
•也可以不指定具体的值,直接使用"paramName" 的格式,代表请求中必须包含参数名为 paramName 的参数
•直接使用“!paramName”格式表示请求不能包含名为paramName的请求参数
这里介绍headers属性:
•请求头Header中必须包含某些指定的参数值,才能让该方法处理请求
定义Ant风格和带占位符的URL
@RequestMapping不仅支持标准的URL,还支持Ant风格和带{xxx}占位符的URL,下面的URL都是合法的:
•/user/*/login:匹配/user/aaa/login,/user/任意字符/login等
•/user/**/login:匹配/user/login,/user/aaa/bbb/login 等
•/user/login??:匹配/user/loginAA,/user/loginbb 等
•/user/{userId}:匹配/user/123,/user/234 等
•/user/**/{userId}:匹配/user/aaa/bbb/123,/user/aaa/234等
这些占位符需要用pathvariable绑定后使用