注解使用
@PathVariable、@RequestHeader、@RequestParam、@RequestBody
@RestController
public class ParameterController {
/**
* @PathVariable:获取路径变量的注解
* restFul风格传递参数
* @param id
* @param name
* @return
*/
@RequestMapping("/info/{id}/{name}")
public Map<String, Object> info(@PathVariable("id") Integer id, @PathVariable("name") String name) {
HashMap<String, Object> map = new HashMap<>();
map.put("id", id);
map.put("name", name);
System.out.println(map);
return map;
}
}
/**
* restFul风格传递参数时,可以用一个map集合接收所有参数
* 注意:参数前还是需要写@PathVariable注解
* @param map
* @return
*/
@RequestMapping("/{id}/{name}/{age}/{gender}")
public Map<String, Object> info(@PathVariable Map<String, Object> map){
System.out.println(map);
return map;
}
/**
* @param host
* @param map
* @return
* @RequestHeader 获取请求头的注解
* 当注解加了值的时候是获取某个请求头
* 如果注解不加值,用一个map集合则获取的是所有的请求头
*/
@RequestMapping("/befo")
public Map<String, Object> befo(@RequestHeader("host") String host,@RequestHeader Map<String, Object> map){
System.out.println(host);
System.out.println(map);
return map;
}
/**
* RequestParam 获取请求参数的注解
* 当注解加了值的时候是获取某个请求参数
* 如果注解不加值,用一个map集合则获取的是所有的请求参数
* 注意:也可以在有多个路径变量的url路径中获取某个参数
*
* @param id
* @param name
* @param age
* @param gender
* @param map
* @param map2
* @return
*/
@RequestMapping("/{id}/{name}")
public Object info(@PathVariable("id") Integer id,
@PathVariable("name") String name,
@RequestParam("age") Integer age,
@RequestParam("gender") String gender,
@PathVariable Map<String, Object> map,
@RequestParam Map<String, Object> map2
){
System.out.println(age);
System.out.println(map);
System.out.println(map2);
ArrayList<Object> objects=new ArrayList<>();
objects.add(map);
objects.add(map2);
return objects;
}
<a href="/2/xiang?age=18&gender=男">
"/2/xiang?age=18&gender=男"
</a>
/**
* @param requestBody
* @return
* @RequestBody:获取请求体的内容
* 注意:只有post请求才有请求体
*/
@RequestMapping("/info2")
public String info2(@RequestBody String requestBody){
System.out.println(requestBody);
return requestBody;
}
<form action="/info2" method="post">
<input type="text" name="name">
<input type="password" name="pwd">
<input type="submit" value="提单">
</form>