1.@ModelAttribute 注解
请求示例:url:"http://localhost:8080/test",
data:{
"name":"张三",
"phone":"10086",
"password":"123456" }
对应的接收java代码:
@RequestMapping("/test")
@ResponseBody
publicString testUser(@ModelAttribute("TUser") TUser user){
System.out.println(user.getName());
System.out.println(user.getPassword());
System.out.println(user.getPhone());
return"ok";}
2.@PathVariabl 注解
url:"http://localhost:8080/test/10086",
data:{
"name":"张三",
"password":"123456" },
对应的接收java代码:
@RequestMapping("/test/{phone}")
@ResponseBody
public String testUser(String name,@PathVariable String phone,String password){
System.out.println(name);
System.out.println(phone);
System.out.println(password);
return"ok"; }
3.直接用HttpServletRequest获取
@RequestMapping("/test")
@ResponseBody
public String testUser(HttpServletRequest request, HttpServletResponse response){
System.out.println(request.getParameter("name"));
System.out.println(request.getParameter("phone"));
System.out.println(request.getParameter("password"));
return "ok";
}
4.@RequestParam绑定请求参数
前端请求代码等同于案例一
java接收参数
@RequestMapping("/test")
@ResponseBody
public String testUser(@RequestParam("name") String a,@RequestParam("phone") String b, String password){
/**
* @RequestParam() 里边的值必须要和前端传递过来的参数名字相同
*/
System.out.println(a);
System.out.println(b);
System.out.println(password);
return "ok";
}
总结:
1、如果前端传递过来的参数与后台接口定义的参数名相同,可以不需要任何注解,如果所有参数都在一个pojo对象中,那么可以直接映射成pojo对象,也可以使用 HttpServletRequest 接收参数
2、如果想使用 resfull 风格的请求方式的话,可以使用 @PathVariable 进行注解
3、如果前端传递的参数与后台接口定义的参数名称不相同,那么就使用 RequestParam 注解
网友评论