细说Get和Post请求方式
1.背景
昨天写了一个简单的查询请求,涉及到具体的逻辑不多描述,基本的思路:1.就是如果什么传输条件都不传的话就是将表里面有效的数据的某几个字段展示出来,2.若果有传输条件就以传输条件为过滤条件,过滤出有效的数据将其中的某几个字段展示出来。
2.解决方法
1.用Get的方式
其实根据正常的思路查询就是应该用get更好,因为get耗费的资源比post要少,而且速度更快,使用户体验更好。下面这一篇博客就详细介绍了get和post的区别
因为传输的参数比较多所以直接封装了一个form来用来传参,然后GetMapping获取,然后就有了一个问题。
Request with GET/HEAD method cannot have body
问题描述:Get方式的head头方法不能有body
原因是因为我在使用GetMapping的时候同时还使用了@RequestBody注解放在传参前面。解决办法就是 1.将GetMapping改为PostMapping。
2.将@RequestBody直接删掉,因为我直接对参数封装了,所以前面并不用加什么参数,SpringBoot就可以自动识别传的参数并把这些参数填到form对应的字段中。因为每天用惯了@RequestParam传单个字段,然后就被这个问题卡了一个多小时炸裂!网上的解决文章基本没啥用,然后最后找到了这个老哥的博客
3.将参数前面加@ModelAttribute,这个我测试过也是可以用的。新知识+1