需要掌握:RESTful
介绍
在 RESTful 中,参数是拼接在url后面的,如下:
http://localhost:8099/book/1
与传统的?后面带参数是不同的,传统如下:
http://localhost:8099/book?id=1
此时需要 @PathVariable 注解获取 RESTful 风格的参数
@PathVariable
@PathVariable注解的作用就是 获取 RESTful风格的参数,加在 形参的前面
在@RequestMapping等注解里面添加占位符,如{paramName},还可以添加 正则表达式。
参数
value:别名name:同valuerequired:默认true。true表示该参数必填,此时必须有此参数,否则报错。false表示不是必填,此参数可以没有!
url有1个参数
url:
http://localhost:8080/book/1
Controller代码:
@GetMapping("/book/{id}")
public String book(@PathVariable String id){
System.out.println("id:"+id);
return "success";
}
或者
@GetMapping("/book/{id}")
public String book(@PathVariable(name="id") String str){
System.out.println("id:"+str);
return "success";
}
参数可以不填写
- 要增加无参数的 url
@PathVariable要设置required=false
代码如下:
@GetMapping(value={"/book/{id}","/book"})
public String book(@PathVariable(required=false) String id){
System.out.println("id:"+id);
return "success";
}
url有多个参数
例1
url: http://localhost:8080/student/lilei/20
Controller代码:
@GetMapping("/student/{name}/{age}")
public String student(@PathVariable("name") String name,@PathVariable("age") String age){
System.out.println("name:"+name);
System.out.println("age:"+age);
return "success";
}
例2
url:http://localhost:8080/student/lilei_20
Controller代码:
@GetMapping("/student/{name}_{age}")
public String student(@PathVariable("name") String name,@PathVariable("age") String age){
System.out.println("name:"+name);
System.out.println("age:"+age);
return "success";
}

