SpringBoot:web开发之二
web开发
如果一个配置类只有有参构造,那么这个配置类的所有参数均从容器中获取。
@PathVariable
如果参数列表中有map,则会自动将所有参数封装在map中。
@GetMapping("/car/{id}/{owner}")
public Map getCar(@PathVariable("id")int id,
@PathVariable("owner")String owner,
@PathVariable()Map<String,String> mv){
System.out.println(mv);
System.out.println(mv.get("id"));
System.out.println(mv.get("owner"));
Map map = new HashMap();
map.put("id",id);
map.put("owner",owner);
return map;
}
@RequestHeader
获取请求头信息。可以在括号中填写想获取哪个请求头信息。也可以使用map自动封装所有请求头信息。
@RequestParam
@GetMapping("/interests")
public String getInterests(@RequestParam("interest") List interest){
System.out.println(interest);
return interest.toString();
}
//在使用@RequestParam Map<String,String> map时,只会保存一个值。
矩阵变量
<a href="/getUser?userId=1">一般形式</a><br>
<a href="/cars/sales;low=23;brand=byd,ad,bc">矩阵变量</a><br>
如需使用矩阵变量则必须重新设置是否移除分号RemoveSemicolonContent
@Bean
public WebMvcConfigurer webMvcConfigurer(){
return new WebMvcConfigurer() {
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
UrlPathHelper urlPathHelper = new UrlPathHelper();
urlPathHelper.setRemoveSemicolonContent(false);
configurer.setUrlPathHelper(urlPathHelper);
}
};
}
@GetMapping("/cars/{path}")
public Map cars(@MatrixVariable("low")Integer low,
@MatrixVariable("brand")List<String> brand){
Map<String,Object> map = new HashMap<>();
map.put("low",low);
map.put("brand",brand);
return map;
}
<!--对于使用另一种形式的矩阵变量-->
<a href="user/1;age=40/2;age=20">矩阵变量2</a>
@GetMapping("/user/{boss}/{emp}")
public Map user(@MatrixVariable(value = "age",pathVar = "boss")Integer bossAge,
@MatrixVariable(value = "age",pathVar = "emp")Integer empAge){
Map<String,Object> map = new HashMap<>();
map.put("bossAge",bossAge);
map.put("empAge",empAge);
return map;
}

浙公网安备 33010602011771号