@PathVariable、@RequestHeader、@RequestParam、@RequestBody 注解使用

注解使用

@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>

posted @ 2021-10-13 16:52  阿向向  阅读(124)  评论(0编辑  收藏  举报