1、get请求
1.1 方法形参接收参数 这种方式一般适用参数比较少的情况,并且前后端参数名称必须保持一致
@restcontroller @requestmapping("/user") @slf4j public class democontroller { @getmapping("/query") public void getstudent(string name,string age) { log.info("name:{}",name); log.info("age:{}",age); } }
参数用 @requestparam 标注,使用value属性指定参数名,required属性表示这个参数是否必传
@restcontroller @requestmapping("/user") @slf4j public class democontroller { @getmapping("/query") public void getstudent(@requestparam(value = "name", required = false) string name, @requestparam(value = "age", required = false) string age) { log.info("name:{}",name); log.info("age:{}",age); } }
1.2 实体类接收参数
注意:get 请求以实体类接收参数时,不能用 requestparam 注解进行标注,因为不支持这样的方式获取参数。
@restcontroller @requestmapping("/demo") @slf4j public class democontroller { @getmapping("/query") public void getstudent(student student) { log.info("name:{}",student.getname()); log.info("age:{}",student.getage()); } } @data class student{ private string name; private integer age; }
1.3 通过httpservletrequest接收参数
@restcontroller @requestmapping("/demo") @slf4j public class democontroller { @getmapping("/query") public void getstudent(httpservletrequest request) { string name = request.getparameter("name"); string phone = request.getparameter("age"); log.info("name:{}",name); log.info("age:{}",age); } }
1.4 通过@pathvariable接收参数
@restcontroller @requestmapping("/demo") @slf4j public class democontroller { @getmapping("/query/{name}/{age}") public void getstudent(@pathvariable string name, @pathvariable string age) { log.info("name:{}",name); log.info("age:{}",age); } }
1.5 接收数组参数
@restcontroller @requestmapping("/demo") @slf4j public class democontroller { @getmapping("/query") public void getstudent(string[] names) { arrays.stream(names).foreach(system.out::println); } }
1.6 接受集合参数
注意:springboot 接收集合参数,必须用 @requestparam 注解声明!
@restcontroller @requestmapping("/demo") @slf4j public class democontroller { @getmapping("/query") public void getstudent(@requestparam list<string> names) { names.foreach(system.out::println); } }
2、post请求
2.1 方法形参接收参数 前后端参数名称必须保持一致
@restcontroller @requestmapping("/user") @slf4j public class democontroller { @postmapping("/save") public void savestudent(string name,string age) { log.info("name:{}",name); log.info("age:{}",age); } }
参数用 @requestparam 标注,使用value属性指定参数名,required属性表示这个参数是否必传
@restcontroller @requestmapping("/user") @slf4j public class democontroller { @postmapping("/save") public void savestudent(@requestparam(value = "name", required = false) string name, @requestparam(value = "age", required = false) string age) { log.info("name:{}",name); log.info("age:{}",age); } }
2.2 通过httpservletrequest接收参数
@restcontroller @requestmapping("/demo") @slf4j public class democontroller { @postmapping("/save") public void savestudent(httpservletrequest request) { string name = request.getparameter("name"); string phone = request.getparameter("age"); log.info("name:{}",name); log.info("age:{}",age); } }
2.3 通过@pathvariable接收参数
@restcontroller @requestmapping("/demo") @slf4j public class democontroller { @postmapping("/save/{name}/{age}") public void savestudent(@pathvariable string name, @pathvariable string age) { log.info("name:{}",name); log.info("age:{}",age); } }
2.4 通过param方式提交参数,以实体类接收参数
直接以实体类可以接收param、form-data、 x-www-form-urlencoded 提交的参数
@restcontroller @requestmapping("/demo") @slf4j public class democontroller { @postmapping("/save") public void savestudent(student student) { log.info("name:{}",student.getname()); log.info("age:{}",student.getage()); } } @data class student{ private string name; private integer age; }
2.5 请求体以json格式提交参数,通过 @requestbody 注解接收参数
接受实体类json参数
@restcontroller @requestmapping("/demo") @slf4j public class democontroller { @postmapping("/save") public void savestudent(@requestbody student student) { log.info("name:{}",student.getname()); log.info("age:{}",student.getage()); } } @data class student{ private string name; private integer age; }
接收数组或者集合类json参数
@restcontroller @requestmapping("/demo") @slf4j public class democontroller { @postmapping("/save") public void savestudent(@requestbody string[] names) { arrays.stream(names).foreach(system.out::println); } @postmapping("/save") public void savestudent(@requestbody list<string> names) { names.foreach(system.out::println); } }
2.6 通过 map 接收参数
@restcontroller @requestmapping("/demo") @slf4j public class democontroller { @postmapping("/save") public void savestudent(@requestparam map<string,object> map) { log.info("name:{}",map.get("name")); log.info("age:{}",map.get("age")); } }
2.7 通过@requestbody 接收一个参数
@restcontroller @requestmapping("/demo") @slf4j public class democontroller { @postmapping("/save") public void savestudent(@requestbody string name) { log.info("name:{}",name); } }
到此这篇关于springboot中get请求和post请求接收参数详解的文章就介绍到这了,更多相关springboot get请求和post请求接收参数内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论