@RequestMapping(映射请求)
标准URL映射
@RequestMapping(value=”xxx”)
定义在方法上:请求路径就是方法上注解的value值
定义在类上:相当于给url多加了一个二级路径
Ant风格的映射(通配符)
通配符
?:通配一个字符
*:通配任意多个字符,可以是0个,可以是1个,可以是多个,作为路径时不要使用
**:通配任意多个路径
占位符(了解即可用不着)
@RequestMapping(value=“/user/{name}/{id} “)
这种方式虽然和通配符“*”类似,却比通配符更加强大,占位符除了可以起到通配的作用,最精要的地方是在于它还可以传递参数。
注意:@PathVariable(“key”)中的key必须和对应的占位符中的参数名一致,而方法形参的参数名可任意取
@RequestMapping(value="/show4/{name}/{id}")
public ModelAndView test4(@PathVariable("name")String name,@PathVariable("id")Long id){
ModelAndView mv = new ModelAndView();
mv.setViewName("hello");
mv.addObject("msg", "占位符的映射:"+name+"..."+id);
return mv;
}
限定请求方法的映射
可限定单个和多个
@RequestMapping(value="show1",method={RequestMethod.POST,RequestMethod.GET})
public ModelAndView test6(){
ModelAndView mv = new ModelAndView("hello");//在构造函数中设置视图名称
mv.addObject("msg", "限定请求方法的映射:post/get");
return mv;
}
也可使用组合注解
@GetMapping 、@PostMapping 、@DeleteMapping 、@PutMapping
当请求方式不符合要求时 页面状态码为 405请求方法错误
限定请求参数的映射
@RequestMapping(value=””,params=””)
params=”userId”:请求参数中必须带有userId
params=”!userId”:请求参数中不能包含userId
params=”userId=1”:请求参数中必须包含参数userId并且值必须为1
params=”userId!=1”:请求的所有参数中如果有userId必须不为1,参数中可以不包含userId
params={“userId”, ”name”}:请求参数中必须有userId,name参数
注意:参数名称和参数值直接不要有空格,即userId=1,而不是userId = 1,因为一般在url中是不会有空格的