当前位置: 首页 > wzjs >正文

西安网吧深圳seo技术

西安网吧,深圳seo技术,金坛做网站的,网站开发合同属于知识产权类吗SpringMVC—请求传参 1. 传递对象 如果参数比较多时,方法声明就需要有很多形参;并且后续每次新增一个参数,也需要修改方法声明. 我们不妨把这些参数封装为一个对象; Spring MVC 也可以自动实现对象参数的赋值,比如 Us…

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


SpringMVC—请求传参


1. 传递对象


如果参数比较多时,方法声明就需要有很多形参;并且后续每次新增一个参数,也需要修改方法声明.

我们不妨把这些参数封装为一个对象


Spring MVC 也可以自动实现对象参数的赋值,比如 Userinfo 对象:

在这里插入图片描述


我们对 Userinfo 定义属性:name ,gender ,age,并且通过下列方式,重写 gettersettertoString 方法:

在这里插入图片描述

package com.example.springmvc_demo;public class Userinfo {private String name;private Integer gender;private Integer age;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getGender() {return gender;}public void setGender(Integer gender) {this.gender = gender;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "Userinfo{" +"name='" + name + '\'' +", gender=" + gender +", age=" + age +'}';}
}

传递对象代码实现:

在这里插入图片描述


我们启动程序,通过 Postman 构造请求:

在这里插入图片描述


在这里插入图片描述


如果我们把属性的 Integer 设置成 int,并且不传值 (取消勾选),也不会报错,默认为0;

在这里插入图片描述

我们在传递对象时,设置的属性名字,必须与后端代码中的对应属性的名字相同!


2. 后端参数重命名(后端参数映射)


某些特殊的情况下,前端传递的参数 key 和我们后端接收的key可以不一致;

  • 比如 前端 传递了一个 kw 给后端,而 后端 是使用 keyword 字段来接收的;

  • 这样就会出现参数接收不到的情况;

  • 如果出现这种情况,我们就可以使用@RequestParam来重命名前后端的参数值


具体示例如下,后端实现代码:

在这里插入图片描述


使用 Postman 发送请求并传参,通过传参结果我们可以知道,对于前端命名的 kw 是可以正确传参的:

在这里插入图片描述


但是,如果我们使用后端命名的 keyword ,则无法传参:

在这里插入图片描述


我们查看错误日志:

在这里插入图片描述

报错信息的意思是:方法参数类型的所需请求参数‘kw’不存在


因此,我们加了注解 @RequestParam("kw") 后, kw 这个参数就是必须传递的了;

但是我们刚刚在 Postman 构造请求时,并没有使用 kw 参数,keyword 是前端的 kw 赋值的,而不是r6 方法中,传入的参数 keyword

在这里插入图片描述


结论:

  • 使用 @RequestParam 进行参数重命名时,请求参数只能和 @RequestParam 声明的名称一致,才能进行参数绑定和赋值;

  • 使用 @RequestParam 进行参数重命名时,参数就变成了必传参数


3. 非必传参数设置


如果我们的实际业务前端的参数是一个非必传的参数,针对上述问题,如何解决呢?

先来了解下参数必传的原因,我们查看@RequestParam 注解的实现细节,就可以发现端倪,注解实现如下:

在这里插入图片描述


可以看到 required 的默认值为 true,表示含义就是:该注解修饰的参数默认为必传

既然如此,我们可以通过设置 @RequestParam 中的 required=false 来避免不传递时报错;


具体实现如下:

在这里插入图片描述

可以看到,添加 required=false 之后,kw 前面也加了key,变成了 value =“kw”

注解属性赋值时,没有指明key的话,默认为 value 属性;

如果需要有多个属性进行赋值时,需要写上 key


重写运行程序,再次使用 Postman 发送请求,响应结果的值虽然为 null,但是没有报错:

在这里插入图片描述


4. 传递数组


Spring MVC可以自动绑定数组参数的赋值,后端实现代码:

在这里插入图片描述

注意打印数组的 Arrays.toString(kunkunLike)


打开 Postman ,重新构造数组请求:

在这里插入图片描述


也可以这样:

在这里插入图片描述


5. 传递集合


在这里插入图片描述


运行程序,使用 Postman 发送请求:

在这里插入图片描述

说明如果要传递集合,我们的后端代码是不可以这样写的;


我们查看错误日志:

在这里插入图片描述

错误日志的意思是:没有为接口java.util.List找到主要的或唯一的构造函数

但是错误日志并不是根本原因,要想解决问题,传递参数,我们就需要使用@RequestParam绑定参数关系


集合参数:

  • 和数组类似,同一个请求参数名有为多个,且需要使用@RequestParam绑定参数关系
  • 默认情况下,请求中参数名相同的多个值,是封装到数组

  • 如果要封装到集合,要使用@RequestParam绑定参数关系


请求方式和数组类似:

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

在这里插入图片描述

http://www.dtcms.com/wzjs/834115.html

相关文章:

  • 在线免费看电视剧的网站石家庄营销网站建设价格
  • 沈阳网站建设方案推广野花香社区论坛
  • 牛商网网站建设多少钱福建省建设执业注册与管理中心网站
  • 网站建设名片游戏开发是什么
  • 天津网站建设优化企业中国互联网百强企业排名
  • 网站后台模板 html团队拓展活动游戏
  • 淘宝客网站api汽车类网站
  • 有什么网站做生鲜配送的企业级建站
  • 广告模板网站整页图片广告网站源码
  • 爱站工具包手机版网站首页制作方案
  • 设计网站制作做旅游攻略什么网站最好
  • 郑州做网站托管群晖wordpress目录
  • 公司网站管理系统wordpress两个头部
  • .net做网站邢台市住房和城乡建设局官方网站
  • 信誉好的扬州网站建设西宁招聘网站开发
  • 深圳大浪网站建设网站 错位
  • 芜湖建设网站wordpress管账
  • python 开发手机网站开发凡科网站建设
  • 杭州市河道建设中心网站4399自己做游戏网站
  • 大型网站 div代理服务器地址是什么
  • 家庭宽带做网站服务器吗帝国cms对比WordPress
  • 网站空间地址查询page手机转wordpress
  • wordpress建站优缺点关于网站建设费用的报告
  • 在国外做网站网站犯法吗网站和公众号的区别是什么
  • 滕州盛扬网站建设推广推广平台哪个效果最好
  • 企业网站建设效果百度网址安全检测
  • 北京 网站设计飞沐我要外包网站
  • .net做网站的吗网站建设自评报告
  • 太原网站排名公司怎么在阿里云服务器上建设网站
  • 网站建设 天佑互联网站个人备案和企业备案