1. 程式人生 > 其它 >@PathVariable、@RequestHeader、@RequestParam、@RequestBody 註解使用

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