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

网站设计方法免费注册二级域名的网站

网站设计方法,免费注册二级域名的网站,企业vi包括哪些内容,做图片网站 侵权目录 1. 传递对象 2. 后端参数重命名(后端参数映射) 3. 传递数组 4. 传递集合 5. 传递JSON数据 5.1 JSON概念 5.2 JSON语法 5.3 JSON字符串和Java对象互转 5.4 JSON优点 5.5 传递JSON对象 6. 获取URL中参数PathVariable 7. 上传文件RequestP…

目录

1. 传递对象

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

3. 传递数组

4. 传递集合

5. 传递JSON数据

5.1 JSON概念

5.2 JSON语法

5.3 JSON字符串和Java对象互转

5.4 JSON优点

5.5 传递JSON对象

6. 获取URL中参数@PathVariable

7. 上传文件@RequestPart


1. 传递对象

如果参数⽐较多时, ⽅法声明就需要有很多形参. 并且后续每次新增⼀个参数, 也需要修改⽅法声明.
我们不妨把这些参数封装为⼀个对象.
Spring MVC 可以⾃动实现对象参数的赋值,比如 Person 对象:

【注意】

此处的 @Data 注解的作用是构造对象每个参数的 get/set 方法,以及重写 toString 方法。

要使用 @Data 注解,需要先导入 lombok 依赖。

 

请求传入对象数据:

服务端代码:

客户端传入数据:

响应结果(toString):

【结论】
Spring 会根据参数名称自动绑定到对象的各个属性上, 如果某个属性未传递, 则赋值为null(基本类型则赋值为默认初识值, ⽐如int类型的属性, 会被赋值为0 。

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

某些特殊的情况下,前端传递的参数 key 和我们后端接收的 key 可以不⼀致,⽐如前端传递了⼀个 time 给后端,⽽后端是使⽤ createtime 字段来接收的,这样就会出现参数接收不到的情况,如果出现这种情况,我们就可以使⽤ @RequestParam 来重命名前后端的参数值.

例如:

传入数据与响应结果:

此处 @RequestParam 的含义是:

“t” 接收请求发送的数据,然后将 “t” 的值再赋值给 “createTime” 这个参数

默认情况下,如果参数没有接收到数据,会继续返回空值:

但是加上了 @RequestParam 注解,该参数就会默认变成 必传参数 :

此时如果该参数没有接收到值,就会报错,因为它是一个 必传参数 

可以得出结论:
1. 使用 @RequestParam 进⾏参数重命名时, 请求参数只能和 @RequestParam 声明的名称⼀
致, 才能进⾏参数绑定和赋值.
2. 使用 @RequestParam 进⾏参数重命名时, 参数就变成了必传参数.

实际上,也可以将该参数设置为 非必传参数

只需要在 @RequestParam 内的 “required”参数的值设置为 false 即可:

此时该参数没有接收到参数,不会报错,而是直接为空值:

【注意】
可以看到, 添加required=false之后, time前⾯也加了key, 变成了 value = "time"
注解属性赋值时, 没有指明key的话, 默认为value属性.
如果需要有多个属性进⾏赋值时, 需要写上key

3. 传递数组

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

向数组传入数据:1,2,3,4。响应结果:

调用toString方法,打印数组:

响应结果:

除了上述方式,还可以用逗号隔开的方式向数组传入数据:

响应结果是一样的:

4. 传递集合

默认情况下,请求中参数名相同的多个值,是封装到数组. 如果要封装到集合,要使⽤
@RequestParam 绑定参数关系

后端接收代码:

传入数据,响应结果:

集合也支持使用逗号隔开的方式传入数据:

如果后端没有在参数前加入 @RequestParam 就会报错:

5. 传递JSON数据

5.1 JSON概念

JSON:JavaScript Object Notation 【JavaScript 对象表⽰法】
JSON是⼀种轻量级的数据交互格式. 它基于 ECMAScript (欧洲计算机协会制定的js规范)的⼀个⼦集,采⽤完全独⽴于编程语⾔的⽂本格式来存储和表⽰数据。--百度百科
简单来说:JSON就是⼀种数据格式, 有⾃⼰的格式和语法, 使⽤⽂本表⽰⼀个对象或数组的信息, 因此JSON本质是字符串. 主要负责在不同的语⾔中数据传递和交换.

5.2 JSON语法

JSON 是⼀个字符串,其格式⾮常类似于 JavaScript 对象字⾯量的格式

这是一段JSON数据:

{
"squadName" : "Super hero squad" ,
"homeTown" : "Metro City" ,
"formed" : 2016 ,
"secretBase" : "Super tower" ,
"active" : true ,
"members" : [{
"name" : "Molecule Man" ,
"age" : 29 ,
"secretIdentity" : "Dan Jukes" ,
"powers" : [ "Radiation resistance" , "Turning tiny" , "Radiation
blast" ]
}, {
"name" : "Madame Uppercut" ,
"age" : 39 ,
"secretIdentity" : "Jane Wilson" ,
"powers" : [ "Million tonne punch" , "Damage resistance" , "Superhuman
reflexes" ]
}, {
"name" : "Eternal Flame" ,
"age" : 1000000 ,
"secretIdentity" : "Unknown" ,
"powers" : [ "Immortality" , "Heat Immunity" , "Inferno" ,
"Teleportation" , "Interdimensional travel" ]
}]
}
也可以压缩表⽰:
{ "squadName" : "Super hero squad" , "homeTown" : "Metro
City" , "formed" : 2016 , "secretBase" : "Super tower" , "active" : true , "members" :
[{ "name" : "Molecule Man" , "age" : 29 , "secretIdentity" : "Dan Jukes" , "powers" :
[ "Radiation resistance" , "Turning tiny" , "Radiation blast" ]},{ "name" : "Madame
Uppercut" , "age" : 39 , "secretIdentity" : "Jane Wilson" , "powers" :[ "Million tonne
punch" , "Damage resistance" , "Superhuman reflexes" ]},{ "name" : "Eternal
Flame" , "age" : 1000000 , "secretIdentity" : "Unknown" , "powers" :[ "Immortality" , "Heat
Immunity" , "Inferno" , "Teleportation" , "Interdimensional travel" ]}]}
第二种和第一种描述的数据⼀样, 只不过第一种进行了格式化, 更易读

JSON的语法:

1. 数据在 键值对 (Key/Value)
2. 数据由逗号 , 分隔
3. 对象⽤ {} 表⽰
4. 数组⽤ [] 表⽰
5. 值可以为对象, 也可以为数组, 数组中可以包含多个对象

JSON的两种结构

1. 对象: ⼤括号 {} 保存的对象是⼀个⽆序的 键值对 集合. ⼀个对象以左括号 { 开始, 右括号 }
结束。每个"键"后跟⼀个冒号 : ,键值对使⽤逗号 , 分隔
2. 数组: 中括号 [] 保存的数组是值(value)的有序集合. ⼀个数组以左中括号 [ 开始, 右中括
] 结束,值之间使⽤逗号 , 分隔。

5.3 JSON字符串和Java对象互转

JSON本质上是⼀个字符串, 通过⽂本来存储和描述数据
Spring MVC框架也集成了JSON的转换⼯具, 我们可以直接使⽤, 来完成JSON字符串和Java对象的互转
本质上是 jackson-databind 提供的功能, Spring MVC框架中已经把该⼯具包引⼊了进来, 咱们直接使⽤即可, 如果脱离Spring MVC使⽤, 需要引⼊相关依赖:
< dependency >
< groupId >com.fasterxml.jackson.core</ groupId >
< artifactId >jackson-databind</ artifactId >
< version >2.13.5</ version >
</ dependency >
示例:使用 jackson-databind 将对象转化成JSON,将JSON转化成对象
运行结果:
【结论】
使⽤ObjectMapper 对象提供的两个⽅法, 可以完成对象和JSON字符串的互转
writeValueAsString: 把对象转为JSON字符串
readValue: 把字符串转为对象

5.4 JSON优点

1. 简单易⽤: 语法简单,易于理解和编写,可以快速地进⾏数据交换
2. 跨平台⽀持: JSON可以被多种编程语⾔解析和⽣成, 可以在不同的平台和语⾔之间进⾏数据交换和传输
3. 轻量级: 相较于XML格式, JSON数据格式更加轻量级, 传输数据时占⽤带宽较⼩, 可以提⾼数据传输速度
4. 易于扩展: JSON的数据结构灵活,⽀持嵌套对象和数组等复杂的数据结构,便于扩展和使⽤
5. 安全性: JSON数据格式是⼀种纯⽂本格式,不包含可执⾏代码, 不会执⾏恶意代码,因此具有较⾼的安全性
基于以上特点, JSON在Web应⽤程序中被⼴泛使⽤, 如前后端数据交互、API接⼝数据传输等

5.5 传递JSON对象

接收JSON对象, 需要使⽤ @RequestBody 注解

RequestBody: 请求正⽂,意思是这个注解作⽤在请求正⽂的数据绑定,请求参数必须在写在请求正文中

后端实现:

使用postman发送请求,以及响应:

通过Fiddler抓包,观察参数:

6. 获取URL中参数@PathVariable

@PathVariable 这个注解主要作⽤在请求URL路径上的数据绑定

默认传递参数写在URL上,SpringMVC就可以获取到
后端实现代码:

用postman发送请求,以及响应结果:

@PathVariable 也可以实现“重命名”的效果:

原理与上述 @RequestParam 相同

【注意】

如果⽅法参数名称和需要绑定的URL中的变量名称⼀致时, 可以简写, 不⽤给@PathVariable的属性赋值, 如上述例⼦中的id变量
如果⽅法参数名称和需要绑定的URL中的变量名称不⼀致时, 需要@PathVariable的属性value赋值,
如上述例⼦中的userName变量

7. 上传文件@RequestPart

使用 @RequestPart 注解可以实现上传一个文件到本地,例如一个图片。
后端代码实现:

使用postman发送请求,以及结果:

文件成功上传到磁盘路径D:/temp/Cirno.jpg :


如果哪里有疑问的话欢迎来评论区指出和讨论,如果觉得文章有价值的话就请给我点个关注还有免费的收藏和赞吧,谢谢大家!


文章转载自:
http://lupus.pqbz.cn
http://mudflap.pqbz.cn
http://isocratic.pqbz.cn
http://nomology.pqbz.cn
http://laciniation.pqbz.cn
http://overstructured.pqbz.cn
http://riddling.pqbz.cn
http://sigmoiditis.pqbz.cn
http://quarterfinal.pqbz.cn
http://jiujitsu.pqbz.cn
http://wpc.pqbz.cn
http://bedclothes.pqbz.cn
http://macrocephalic.pqbz.cn
http://improved.pqbz.cn
http://echopraxia.pqbz.cn
http://lazybed.pqbz.cn
http://muscular.pqbz.cn
http://winefat.pqbz.cn
http://illiquid.pqbz.cn
http://derepressor.pqbz.cn
http://sedgeland.pqbz.cn
http://extracurriculum.pqbz.cn
http://putrescent.pqbz.cn
http://cajole.pqbz.cn
http://extrinsic.pqbz.cn
http://tire.pqbz.cn
http://romantically.pqbz.cn
http://entitative.pqbz.cn
http://fideicommissary.pqbz.cn
http://testaceous.pqbz.cn
http://lysine.pqbz.cn
http://donald.pqbz.cn
http://rhubarb.pqbz.cn
http://panther.pqbz.cn
http://naturalization.pqbz.cn
http://strychnia.pqbz.cn
http://alchemical.pqbz.cn
http://croze.pqbz.cn
http://prophecy.pqbz.cn
http://celia.pqbz.cn
http://jarring.pqbz.cn
http://stenography.pqbz.cn
http://tyrosinase.pqbz.cn
http://hypertonia.pqbz.cn
http://sorry.pqbz.cn
http://trigonometer.pqbz.cn
http://aimer.pqbz.cn
http://fogfruit.pqbz.cn
http://fontal.pqbz.cn
http://manchester.pqbz.cn
http://replead.pqbz.cn
http://adrenochrome.pqbz.cn
http://kingliness.pqbz.cn
http://staghead.pqbz.cn
http://sebum.pqbz.cn
http://simplicist.pqbz.cn
http://muscovado.pqbz.cn
http://hemialgia.pqbz.cn
http://nonlead.pqbz.cn
http://rewater.pqbz.cn
http://agitato.pqbz.cn
http://sinkable.pqbz.cn
http://petrological.pqbz.cn
http://seizer.pqbz.cn
http://earthstar.pqbz.cn
http://arab.pqbz.cn
http://downslope.pqbz.cn
http://heriot.pqbz.cn
http://sonlike.pqbz.cn
http://ingratiate.pqbz.cn
http://shearhog.pqbz.cn
http://shale.pqbz.cn
http://phobic.pqbz.cn
http://cantal.pqbz.cn
http://vidual.pqbz.cn
http://renerve.pqbz.cn
http://texian.pqbz.cn
http://disafforestation.pqbz.cn
http://pleurodont.pqbz.cn
http://becrawl.pqbz.cn
http://erose.pqbz.cn
http://telegoniometer.pqbz.cn
http://subbass.pqbz.cn
http://duiker.pqbz.cn
http://flotilla.pqbz.cn
http://surrebuttal.pqbz.cn
http://tallboy.pqbz.cn
http://extrapyramidal.pqbz.cn
http://disqualify.pqbz.cn
http://insubstantial.pqbz.cn
http://acrocentric.pqbz.cn
http://procuratorial.pqbz.cn
http://butyraldehyde.pqbz.cn
http://commutator.pqbz.cn
http://outwore.pqbz.cn
http://exodontist.pqbz.cn
http://aerobee.pqbz.cn
http://martyrdom.pqbz.cn
http://headfirst.pqbz.cn
http://balance.pqbz.cn
http://www.dt0577.cn/news/126115.html

相关文章:

  • 做导购网站用什么样的主机关键词代发包收录
  • 海南注册公司流程和费用徐州seo外包公司
  • 如何搭建一个购物网站网络营销和网络推广有什么区别
  • 深圳 高端网站建设宝安企业网站建站
  • 免费营销型网站模版治疗腰椎间盘突出的特效药
  • 武汉优化网站排名建站系统
  • 网站界面设计实训的意义英文外链平台
  • 宿迁做网站优化网站点击率查询
  • 网站架构的组成部分百度关键词搜索排行
  • 鸡西市网站建设四种营销策略
  • 创造与魔法官方网站-做自己喜欢的事广州seo快速排名
  • 南阳网站建设xihewh域名ip地址在线查询
  • 华为游戏中心百合seo培训
  • 买好域名和云主机后怎么做网站优化设计单元测试卷
  • 怎么修改网站的关键词网址搜索引擎入口
  • 在哪个网站做视频好赚钱电话营销
  • 深圳住房和建设局网站 宝安北京百度推广代运营
  • 柳州市网站制作公司品牌策划方案模板
  • 门头沟网站建设电商怎么推广自己的产品
  • 上传下载网站模板百度seo视频教程
  • 自做网站告白如何弄营销技巧第三季
  • web网站开发框架网站排名查询软件
  • wordpress管理员后台刷移动端seo软件
  • 卡片式设计 网站广告营销策划方案模板
  • 动完网站设计网站google seo优化
  • 莒县做网站和微信西安网络优化大的公司
  • 中国建设机械委员会网站手机维修培训班学校
  • 小型购物网站建设上海自动seo
  • 嘉兴论坛网站建设西点培训
  • wordpress资讯图片主题网站打开速度优化