除GET和POST还有哪些发送和接收参数的方法?

通常情况下,我们可以使用GET或POST来发送请求和数据,但GET和POST两种方法所携带的数据都是比较简单的数据,接下来在我们这个基础上,列举5种比较负责的参数传递方法,并对这些参数如何发送,后台改如何接收做详细的讲解。

常见的参数种类有:

·普通参数

·POJO类型参数

·嵌套POJO类型参数

·数组类型参数

·集合类型参数

普通参数

普通参数:url地址传参,地址参数名与形参变量名相同,定义形参即可接收参数。

除GET和POST还有哪些发送和接收参数的方法?

如果形参与地址参数名不一致该如何解决呢?

发送请求与参数,示例代码如下:

http://localhost/commonParamDifferentName?name=张三&age=18

后台接收参数:

@RequestMapping(“/commonParamDifferentName”) @ResponseBody public String commonParamDifferentName(String userName, int age) { System.out.println(“普通参数传递 userName ==> “ + userName); System.out.println(“普通参数传递 age ==> “ + age); return “{module:common param different name}”; }

因为前端给的是name ,后台接收使用的是userName ,两个名称对不上,导致接收数据失败:

除GET和POST还有哪些发送和接收参数的方法?

使用@RequestParam注解,可以避免接受数据失败。

@RequestMapping(“/commonParamDifferentName”) @ResponseBody public String commonParamDifferentName(@RequestPaam(“name”) String userName, int age) { System.out.println(“普通参数传递 userName ==> “ + userName); System.out.println(“普通参数传递 age ==> “ + age); return “{module:common param different name}”; }

注意:写上@RequestParam注解框架就不需要自己去解析注入,能提升框架处理性能。

POJO数据类型

简单数据类型一般处理的是参数个数比较少的请求,如果参数比较多,那么后台接收参数的时候就比较复杂,这个时候我们可以考虑使用POJO数据类型。

POJO参数:请求参数名与形参对象属性名相同,定义POJO类型形参即可接收参数此时需要使用前面准备好的POJO类,先来看下User

public class User { private String name; private int age; //setter…getter…略 }

发送请求和参数:

除GET和POST还有哪些发送和接收参数的方法?

后台接收参数:

//POJO参数:请求参数与形参对象中的属性对应即可完成参数传递 @RequestMapping(“/pojoParam”) @ResponseBody public String pojoParam(User user){ System.out.println(“pojo参数传递 user ==> “+user); return “{module:pojo param}”; }

注意:

POJO参数接收,前端GET和POST发送请求数据的方式不变。 请求参数key的名称要和POJO中属性的名称一致,否则无法封装。

嵌套POJO类型参数

如果POJO对象中嵌套了其他的POJO类,如:

public class Address { private String province; private String city; //setter…getter…略 } public class User { private String name; private int age; private Address address; //setter…getter…略 }

嵌套POJO参数:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POJO属性参数发送请求和参数:

除GET和POST还有哪些发送和接收参数的方法?

后台接收参数:

//POJO参数:请求参数与形参对象中的属性对应即可完成参数传递 @RequestMapping(“/pojoParam”) @ResponseBody public String pojoParam(User user){ System.out.println(“pojo参数传递 user ==> “+user); return “{module:pojo param}”; }

注意:

请求参数key的名称要和POJO中属性的名称一致,否则无法封装。

数组类型参数

举个简单的例子,如果前端需要获取用户的爱好,爱好绝大多数情况下都是多个,如何发送请求数据和接收数据呢?

数组参数:请求参数名与形参对象属性名相同且请求参数为多个,定义数组类型即可接收参数,发送请求和参数的示例代码如下:

除GET和POST还有哪些发送和接收参数的方法?

后台接收参数:

//数组参数:同名请求参数可以直接映射到对应名称的形参数组对象中 @RequestMapping(“/arrayParam”) @ResponseBody public String arrayParam(String[] likes) { System.out.println(“数组参数传递 likes ==> “ + Arrays.toString(likes)); return “{module:array param}”; }集合类型参数

数组能接收多个值,那么集合是否也可以实现这个功能呢? 发送请求和参数:

除GET和POST还有哪些发送和接收参数的方法?

后台接收参数

//集合参数:同名请求参数可以使用@RequestParam注解映射到对应名称的集合对象中作为数据 @RequestMapping(“/listParam”) @ResponseBody public String listParam(List < String > likes) { System.out.println(“集合参数传递 likes ==> “ + likes); return “{module:list param}”; }

运行会报错,

除GET和POST还有哪些发送和接收参数的方法?

错误的原因是:SpringMVC将List看做是一个POJO对象来处理,将其创建一个对象并准备把前端的数 据封装到对象中,但是List是一个接口无法创建对象,所以报错。 解决方案是:使用@RequestParam注解

//集合参数:同名请求参数可以使用@RequestParam注解映射到对应名称的集合对象中作为数据 @RequestMapping(“/listParam”) @ResponseBody public String listParam(@RequestParam List < String > likes) { System.out.println(“集合参数传递 likes ==> “ + likes); return “{module:list param}”; }

集合保存普通参数:请求参数名与形参集合对象名相同且请求参数为多个,@RequestParam绑定参数关系。对于简单数据类型使用数组会比集合更简单些。

免责声明:文章内容来自互联网,本站仅作为分享,不对其真实性负责,如有侵权等情况,请与本站联系删除。
转载请注明出处:除GET和POST还有哪些发送和接收参数的方法? https://www.dachanpin.com/a/cyfx/11039.html

赞 (0)
工具推荐:不同阶段产品经理要做哪些文档?
上一篇 2023-05-12 02:45:40
怎样描述BeanFactory与ApplicationContext的关系?
下一篇 2023-05-12 02:46:50

相关推荐

  • 青岛妇联与中行举办“她时代创未来”女性创业创新论坛

      此外,现场举行了中行“六心”颁奖盛典,表彰了行内的优秀女性。向评选出的“十佳爱心妈妈”、“十佳孝心女儿”、“十佳慧心女管理者”、“十佳匠心巾帼标兵”、“十佳贴心女工之友”、“十佳齐心巾帼标兵岗”六十佳优秀女性进行了颁奖,勉励她们在今后的工作和生活中不断提高自身综合素质,做行风建设表率,做家庭美德模范,再立新功。活动期间还穿插了青岛市女企业家协会会员和中行…

    创业分享 2023-05-25
  • 马云谈年轻人创业“小目标” 急着赚钱等于急速破产

    其实看书重要,但是看世界更重要,对我们来讲,读万卷书不如行万里路,见世界上各种各样的人,听各种各样不同的看法,然后进行分析思考,用自己的脑袋,不管你看多少书,最好还是用自己的脑袋思考,不管你跟多少人交流,你最后还是要用自己的脑袋思考。 主持人:毫无疑问现在阿里巴巴和马云成为杭州的一张名片,这是你的荣誉,也是你的责任,这次G20在杭州召开,您觉得会给杭州带来什…

    创业分享 2023-05-29
  • 中国创新创业指数 北京位居第一

    中关村创新创业季2016今天在北京闭幕。图为北京中小学创客团队获奖者领奖。 于立霄 摄 中新网北京10月21日电 (记者 于立霄)中关村创新创业季2016今天在北京闭幕。中国创新创业指数在闭幕式上发布,全国300多个城市中,“双创”指数北京排名第一,呈现稳定发展趋势,其次是上海、广东、浙江和江苏。 36氪政策研究院院长程国来在闭幕式上介绍说,“双创”指数2.…

    2023-05-28
  • 徐小平:创业者到了职业鄙视链的最高端,阻挡我们的不是资本寒冬,而是想象力!

      我前两天去上海出差,深夜抵达机场。在过去我需要请朋友、找熟人开车来接机,但现在下飞机以后叫个易到专车,马上就可以联系到附近的司机。网约专车的创新,已经彻底改变了人们的出行方式。   清晨在上海街头,我看到六七辆黄色的 ofo 自行车,还有几辆红色的 MoBike 自行车。这两家公司都在短短一年内从无到有,进一步改变…

    创业分享 2023-05-27
  • 新疆多措并举为群众创业打开“门路”

      党的十九大报告提出:要鼓励创业带动就业。当前,新疆正以项目为载体,以创业孵化基地为窗口,利用政策支持、产业带动等,为群众创业打开“门路”。   这两天,昌吉市硫磺沟镇农民刘东忙的不亦乐乎,一边清点货品为买家装箱发货,一边用手机接下新的订单。今年年初,他通过农村小额贷款贷了10万元,从农民摇身一变成了网店老板,开始销售棉被、干果等产品,刘东说,他现在每天都…

    创业分享 2023-05-18

发表回复

登录后才能评论

联系我们

在线咨询: QQ交谈

邮件:362039258@qq.com

工作时间:周一至周五,9:30-16:30,节假日休息