1.處理request的uri部分的參數(即restful訪問方式):@PathVariable.
當使用restful訪問方式時, 即 someUrl/{paramId}, 這時的參數可通過 @Pathvariable注解來獲取。
調用方式(get方法):http://localhost:4005/***/cxhdlb/111111
接收參數代碼:
@RequestMapping(value = "/cxhdlb/{param}", method = RequestMethod.GET) public List<String> findEventList(@PathVariable String param) { System.out.println(param); }
2.處理request header部分的參數:@RequestHeader,@CookieValue
@RequestHeader 注解,可以把Request請求header部分的值綁定到方法的參數上。
這是一個Request 的header部分:
Host localhost:8080 Accept text/html,application/xhtml+xml,application/xml;q=0.9 Accept-Language fr,en-gb;q=0.7,en;q=0.3 Accept-Encoding gzip,deflate Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive 300
接收參數代碼:
@RequestMapping("/displayHeaderInfo.do") public void displayHeaderInfo(@RequestHeader("Accept-Encoding") String encoding, @RequestHeader("Keep-Alive") long keepAlive) { //... }
上面的代碼,把request header部分的 Accept-Encoding的值,綁定到參數encoding上了, Keep-Alive header的值綁定到參數keepAlive上。
@CookieValue 可以把Request header中關於cookie的值綁定到方法的參數上。
例如有如下Cookie值:
JSESSIONID=415A4AC178C59DACE0B2C9CA727CDD84
接收參數代碼:
@RequestMapping("/displayHeaderInfo.do") public void displayHeaderInfo(@CookieValue("JSESSIONID") String cookie) { //... }
即把JSESSIONID的值綁定到參數cookie上。
3.處理request body部分的注解:@RequestParam,@RequestBody,@Validated
@RequestParam注解用來接收地址中的參數,參數的格式是http://*****?uid=111111&uname=張三。
接收參數代碼:
@Controller @RequestMapping("/users") public class UserController{ @RequestMapping(value = "/hqyhxx",method = RequestMethod.GET) public String getUserInfo(@RequestParam("uid") String uid,@RequestParam("uname") String uname) {
//...
}
}
@Validated注解可以用一個模型來接收地址欄中的參數,參數的格式是http://*****?uid=111111&uname=張三。
接收參數代碼:
@Controller @RequestMapping("/users") public class UserController{ @RequestMapping(value = "/hqyhxx",method = RequestMethod.GET) public String getUserInfo(@Validated User user) { String uid = user.getUid();
String uname = user.getUname(); } }
@RequestBody注解用來接收request的body中的參數,@RequestBody可以將多個參數放入到一個實體類或者Map中。
接收參數代碼:
@RequestMapping(value = "/cjhd", method = RequestMethod.POST) public Result createEvent(@RequestBody ParameterModel parameterModel, HttpServletRequest request, HttpServletResponse response) { String rowkey = parameterModel.getRowkey(); } 或者 @RequestMapping(value = "/cjhd", method = RequestMethod.POST) public Result createEvent(@RequestBody Map<String, Object> paramMap, HttpServletRequest request, HttpServletResponse response) { String rowkey = (String) paramMap.get("rowkey"); }
參考:
http://www.cnblogs.com/qq78292959/p/3760702.html