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

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方法的映射,并更好地表达被注解方法的语义。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值