web服务接收前端传入的值常用注解(持续更新)

@PathVariable 接收请求路径中占位符的值

语法:

@PathVariable("xxx")
通过 @PathVariable 可以将URL中占位符参数{xxx}绑定到处理器类的方法形参中@PathVariable(“xxx“) 
 
@RequestMapping(value=”user/{id}/{name})
请求路径:http://localhost:8080/hello/java/8/spring

@RequestParam接收的参数是来自requestHeader中,即请求头中

  1. @RequestParam 可接收简单类型和对象类型属性
  2. @RequestParam 通常用来接收 application/x-www-form-urlencoded 编码的内容,Content-Type默认为该属性
  3. @RequestParam 可接收请求类型包括 get post put delete 等
  4. @RequestParam 不支持批处理
  5. @RequestParam 有三个配置参数:
    1)required 表示是否必须,默认为 true,必须
    2)defaultValue 可设置请求参数的默认值
    3)value 为接收url的参数名(相当于key值)

@RequestBody 接收的参数来自请求体 通常为 data 的对象

语法:

  1. @RequestBody 通常接受 application/json和application/xml 类型 的 字符串
  2. 通过@requestBody可以将请求体中的JSON字符串绑定到相应的bean上
  3. GET请求中,因为没有HttpEntity,所以@RequestBody并不适用
    例如
$.ajax({
 url:"/login",
 type:"POST",
 data:'{"userName":"admin","pwd","admin123"}',
 content-type:"application/json charset=utf-8",
 	success:function(data){
  alert("request success ! ");
 }
});
@requestMapping("/login")
public void login(@requestBody String userName,@requestBody String pwd){
  System.out.println(userName+" :"+pwd);
}

这种情况是将JSON字符串中的两个变量的值分别赋予了两个字符串

@requestMapping("/login")
public void login(@requestBody User user){
  System.out.println(user.userName+" :"+user.pwd);
}

这种形式会将JSON字符串中的值赋予user中对应的属性上
需要注意的是,JSON字符串中的key必须对应user中的属性名,否则是请求不过去的

补充

在一个方法中 @RequestParam 和@RequestBody 可同时使用

发布了22 篇原创文章 · 获赞 9 · 访问量 3741

猜你喜欢

转载自blog.csdn.net/king101125s/article/details/104181560
今日推荐