曾经学习过Contoller接收参数的几个注解,但是一直都不能总结归纳为一个系统。
一 API
String getParameter(String var1);
二 基本数据类型
例子省略。
三 集合和Map
1)list
@RequestMapping("/list")publicObjectlistTest(@RequestParamListlist){returnlist;}
URL:http://localhost:8080/api/list?list=1,2,3
返回结果:["1","2","3"]
2)set
@RequestMapping("/set")publicObjectsetTest(@RequestParamSetset){returnset;}
URL:http://localhost:8080/api/set?set=1,2,1,2
返回结果:["1","2"]
3)map
@RequestMapping("/map")publicObjectmapTest(@RequestParamMapmap){returnmap;}
URL:http://localhost:8080/api/map?x=1&y=2
返回结果:{"x":"1","y":"2"}
四 自定义类型
@ModelAttribute
五 POST请求的参数
@Getter@SetterpublicclassCore{privateStringname;privateIntegerage;}@RequestMapping(path="/xxx",consumes=MediaType.APPLICATION_JSON_VALUE)publicObjectrequestBody(@RequestBodyCorecore){core.setAge(core.getAge()+10);returncore;}
五 请求的属性
@GetMapping("/attribute")publicObjectatrributeTest(@RequestAttribute("a")Integera,@RequestAttribute("b")Stringb){returnb+a;}
参数也可以是自定义类型。
六 路径变量
略去
七其他
@RequestMapping("/x")publicObjectparamsTest(@RequestHeader("Accept")String[]accepts,@RequestHeader("User-Agent")StringuserAgent,@CookieValue(name="JSESSIONID")StringsessionId,HttpServletRequestrequest){Cookie[]cookies=request.getCookies();for(Cookiecookie:cookies){System.out.println(cookie.getName()+"\t"+cookie.getValue());}System.out.println(userAgent);System.out.println(Arrays.toString(accepts));}