除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
下一篇 2023-05-12 02:46:50

相关推荐

  • 猪八戒网朱明跃:我创业10年的10大心得

    所以任何一家公司不管是在任何的发展阶段,我们都应该是一半是海水,一半是火焰。一边去扎马步,一边要有人学会快速地奔跑,扎着马步奔跑是一家公司必须要练就的绝技。 在天使阶段,我觉得更重要的不是钱,钱也很重要,但是天使阶段更多的还是在寻找创业伙伴或者是说创业教练。 所以说对于创业你只要走上了融资发展这条路,你就是一条不归路,你必须要每年都是陡峭式的增长,而我们猪八…

    创业分享 2023-05-21
    6000
  • 吾往团队:珠宝首饰如何吸睛 传统文化赋予灵感

    读特客户端深圳新闻网2022年9月13日讯(记者 吴炳然/文 图、视频/孙昊一  杨泽楠)近年来,故宫系列文创产品频频出圈、河南卫视国风舞蹈节目惊艳众人,穿越古今的舞蹈诗剧《只此青绿》为传统美走向新时代给出灵感。当国风国潮成为一种新的时尚,越来越多的人爱上了这种“中式表达”,并参与进来。在深圳南山的赛西科技大厦,就有这样一群热爱中国传统文化的年轻人…

    2023-05-10
    5000
  • 联才工坊西安园区成立一周年 创业活动闪耀西安

      活动现场,创业圈大佬们分别带来了“云技术私享会”、“西安人工智能应用技术”、“中国&加拿大 教育创变者思维论坛”、“成功创业者的搞砸经历”、“设计你的大西安:青少年城市即兴建造活动”等精彩分享。“联才工坊嘉年华”系列活动在西安的顺利进行,也承载了政府、创投圈、各界媒体的支持和认可。期待联才工坊在西安永放光彩。 联才工坊西安园区成立一周年 创业活动…

    创业分享 2023-06-05
    5600
  • 八月瓜:专利代理师的创业平台,全球招募500位合伙人

    除开以上原因,专利代理师在创业过程中还会遇到各种各样棘手的问题,也许正是由于这些问题,让很多踌躇满志想要创业的专利代理师,望而却步。因此如何低风险创业,抢占万亿市场,成为专利代理师及中小代理机构一直在探索的问题。 5、专业流程管理,保姆式服务 八月瓜完善的CRM系统可从市场营销、销售、回款及服务管理等方面实现各流程环节的智能化监管,实现数据实时更新。 八月瓜…

    创业分享 2023-05-12
    4400
  • 宜昌12个创业创新项目签约21亿

      周正英说,今年以来,宜昌高新区共签约了61个投资合作协议,6个框架协议,近20个项目已经落地。特别是电子信息、生物医药等领域成果丰硕,电子信息产业方面,明年有望形成1000万套显示器的生产能力;生物医药方面,一批国际领先的项目落户宜昌。此次落户的项目将进一步促进宜昌高新技术产业的发展,各部门要真情服务、主动服务、高效服务,促进项目落地快、投产快、见效快。…

    2023-05-29
    6200

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信