spring boot 学习笔记(2)–@PathVariable @RequestParam @GetMapping @PostMapping

  • Post author:
  • Post category:其他


1、 –

@RestController = @Controller+@ResponseBody

2、

Controller 中url 各个参数使用

@PathVariable —–获取url中的数据

@RequestParam —-获取请求参数的值

@GetMapping,@POSTMapping ——组合注解

@RequestParam用法

这里写图片描述

这里写图片描述


@RequestParam

用来处理ContentType: 为 application/x-www-form-urlencoded编码的内容,不管用GET、POST方式提交都行。

@RequestBody

该注解常用来处理Content-Type: 不是application/x-www-form-urlencoded编码的内容,例如application/json, application/xml等;


@RequestBody

接收的是一个Json对象的字符串,而不是一个Json对象。在ajax请求往往传的都是Json对象,用 JSON.stringify(data)的方式就能将对象变成字符串。

通过@requestBody可以将请求体中的JSON字符串绑定到相应的bean上,当然,也可以将其分别绑定到对应的字符串上。

问题待求解1:

分别绑定到对应的字符串上。 如:@ResponseBody

public String doRegister(@RequestBody String username ,@RequestBody String password

问题待求解2:

内容编码方式application/x-www-form-urlencoded,application/json, application/xml分别在什么情况下使用;

前台代码:

$.ajax({ 
    url : "${ctx}/rediscluster/delete.do", 
    data : JSON.stringify (' {"rname":rname}'), 
    type : "post", 
    dataType:"text", 
    contentType : "application/json", 
    success : function(data) { 
         if(data == 'OK'){ 
             window.location = "${ctx}/system/redis/nodesmanager.jsp"; 
         } 
    } 
});

后台要是还用@RequestParam(“rname”)String rname接收参数的时候,会报错:String parameter ’ rname ’ is not present,前台返回400.又用另一种方式,request.getParameter(“rname”)来获得,同样发现,始终是null.无法接收到数据。

@PathVariable用法

(1)

这里写图片描述

这里写图片描述

(2)

这里写图片描述

这里写图片描述

单个参数

$.ajax({
  url: '/users/delete/'+row.id,
  // contentType: "application/x-www-form-urlencoded",//请求内容格式 默认是 application/json 自己根据格式自行服务端处理
  data: {id: row.id},
  dataType: "html",//期待返回数据类型为html
  method: "post",
  success: function (data) { 
      window.location.reload(data); //重新刷新页面
  }
})

//controller
@RequestMapping(value = "/delete/{id}",method = RequestMethod.POST)
    public String  delete(@PathVariable("id") String id){ 
        userMapper.delete(Long.parseLong(id));
        return "redirect:/users/getAll";
    }

@GetMapping,@POSTMapping –组合注解

@GetMapping,@POSTMapping    ------组合注解


@GetMapping=@RequestMapping(method = RequestMethod.GET)的缩写,是一个组合注解


@PostMapping=@RequestMapping(method = RequestMethod.POST)的缩写,是一个组合注解**

Spring4.3中引进了{@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping},来帮助简化常用的HTTP方法的映射,并更好地表达被注解方法的语义。



版权声明:本文为fengcai0123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。