> 文章列表 > 前后端的数据交互:@RequestMapping、@RequestParam、@RequestBody、@RequestHeader等等

前后端的数据交互:@RequestMapping、@RequestParam、@RequestBody、@RequestHeader等等

前后端的数据交互:@RequestMapping、@RequestParam、@RequestBody、@RequestHeader等等

文章目录

  • @RequestHeader
  • @RequestParam
  • RequestBody

@RequestHeader

@RequestHeader注解将请求头User-Agent变量userAgent变量绑定。如果在@RequestHeader没有指定value值,那就默认前端userAgent与后端userAgent绑定,即前后端必须有一个相同名字的参数userAgent。

@Controller
public class HelloController { @RequestMapping(value = "/hello.htm")public String hello(@RequestHeader(value="User-Agent") String userAgent)//..}
}

@RequestParam

@RequestParam配合GET方法,没有方法体,方法中的参数都是从URL中获取
前后端的数据交互:@RequestMapping、@RequestParam、@RequestBody、@RequestHeader等等

RequestBody

$.ajax({url:"/login",type:"POST",data:'{"userName":"admin","pwd","admin123"}',content-type:"application/json charset=utf-8",  //要特别注意后台接口是否加了@RequestBody,决定了传递参数的类型success:function(data){alert("request success ! ");}});

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

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

但是呢假如我有一个User类,拥有如下字段:String userName; String pwd;
那么上述参数可以改为以下形式:@requestBody User user 这种形式会将JSON字符串中的值赋予user中对应的属性上,需要注意的是,JSON字符串中的key必须对应user中的属性名,否则是请求不过去的。