标签:注意 stc tle 上下 键值 demo com ali business
目录
以请求http://localhost/test/charge2/hfcz/fuLu?a=1&b=2
为例。
请求分为两部分,以?
为分割。前面是URL,后面是GET请求的请求参数。
注意:一般GET请求才会把参数通过
?
形式附在URL后面,POST请求的参数一般在Body部分。
这些关系可以参考: url 中 & 、 ? 、 # 的作用 - xiongzhengxiang 的专栏 - CSDN 博客
@GetMapping(value="charge2/{business}/{agent}",produces="application/json;charset=utf-8")
public Object getUserById(@PathVariable("business") String business,@PathVariable("agent") String agent) {
}
如上Demo。结合请求,使用该注解后,在方法中,business=hfcz,agent=fuLu。
主要应用场景是:不少应用为了实现 RestFul 的风格,采用 @PathVariable 这种方式。
这个注解是和 spring 的 pathVariable
是一样的,也是基于模板的,但是这个是 jboss 包下面的一个实现,上面的是 spring 的一个实现,都要导包 。
具体参考: @RequestParam,@PathParam,@PathVariable 等注解区别 - 一年 e 度的夏天的专栏 - CSDN 博客
@GetMapping(value="charge2/hfcz/fuLu",produces="application/json;charset=utf-8")
public Object getUserById(@RequestParam(value = "a") String a, String b) {
}
如上:最终方法中a=1,b=2。不管是否使用 @RequestParam 注解,只要方法中的变量名和请求中参数key一致,就会自动映射。
@GetMapping(value="charge2/hfcz/fuLu",produces="application/json;charset=utf-8")
public Object getUserById(HttpServletRequest httpServletRequest) {
//获取所有参数
Map<String, Object> map = httpServletRequest.getParameterMap();
//获取单个参数:该方法同时适用于 get 方式中 queryString 的值,和 post 方式中 body data 的值;
String a=request.getParameter("a");
}
如上:map中会有两个键值对,分别为a=1,b=2。然后字符串a就是1。
该注解适合JSON形式的请求。参数可以自动被映射为一个对应的Bean或者一个Map。
下面内容参考: springMVC 接收参数的几种形式 - alwaysBrother 的博客 - CSDN 博客
只适用于post应该:使用@RequestBody 注解,可以通过Bean和Map接收。
- springboot 获取 URL 请求参数的几种方法 - 记忆碎片 - CSDN 博客
注:形参+ HttpServletRequest + @PathVariable + @RequestParam + @ModelAttribute- @RequestParam 和 @PathVariable 的区别及其应用场景 - 挑战者 V - 博客园
注:场景分析很不错。- Spring MVC 怎么获取 request 的请求参数 - yh_zeng2 的博客 - CSDN 博客
注:有一个通过 RequestContextHolder 上下文获取 request 对象的说明,后续了解下。- @PathVariable 和 @RequestParam 的区别 - 每天进步一点点! - ITeye 博客
注:整体说明很好,结构和本文差不多,所以来由很清楚。同时还有 @RequestHeader, @CookieValue ,@SessionAttributes, @ModelAttribute 等注解的说明。- springMVC 接收参数的几种形式 - alwaysBrother 的博客 - CSDN 博客
注:很全的说明,对于入参的类型做了特别说明。还有使用Map接收参数的方式。多参考。
标签:注意 stc tle 上下 键值 demo com ali business
原文地址:https://www.cnblogs.com/buwuliao/p/11838387.html