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

网站开发 自我评价业务型网站首页

网站开发 自我评价,业务型网站首页,抖音代运营服务商,公司网站抄袭目录 1.前言 2.正文 2.1基础参数传递 2.1.1单参数 2.1.2多参数 2.2对象参数绑定 2.2.1自动封装对象 2.2.2参数别名处理 2.3集合类型处理 2.3.1数组接收 2.3.2List集合接收 2.4JSON参数处理 2.4.1介绍JSON 2.4.2传递JSON参数 2.5RESTful风格参数 2.6文件上传处理…


目录

1.前言

2.正文

2.1基础参数传递

2.1.1单参数

2.1.2多参数

2.2对象参数绑定

2.2.1自动封装对象

2.2.2参数别名处理

2.3集合类型处理

2.3.1数组接收

2.3.2List集合接收

2.4JSON参数处理

2.4.1介绍JSON

2.4.2传递JSON参数

2.5RESTful风格参数

2.6文件上传处理

2.7完整调试代码

3.小结


1.前言

哈喽大家好吖,在SpringMVC开发中,参数传递是开发者每天都要面对的核心问题。不同的业务场景需要采用不同的参数接收方式,合理的参数处理能大幅提升开发效率和代码质量。本文将通过一个完整的RequestController案例,详解10种常见参数传递方式,助你彻底掌握SpringMVC参数传递技巧。

2.正文

官方文档:Spring Framework Documentation :: Spring Frameworkhttps://docs.spring.io/spring-framework/reference/

2.1基础参数传递

2.1.1单参数

@RequestMapping("/r1")
public String r1(String keyword){return "接收参数:" + keyword;
}
  • 调用示例/request/r1?keyword=spring

  • 特点

    • 参数名与方法参数名严格匹配

    • 自动完成基本类型转换(String→int等)

    • 若参数不存在会注入null

2.1.2多参数

@RequestMapping("r2")
public String r2(String name, int id){return "receive:" + name + id;
}
  • 调用示例/request/r2?name=Alice&id=1001

  • 注意事项

    • 基本类型参数不能为null(如int)

    • 推荐使用包装类型Integer避免空指针异常

避免空指针:

@RequestMapping("r3")public String r3(Integer number){return "receive" + number;}

2.2对象参数绑定

2.2.1自动封装对象

@RequestMapping("r4")
public String r4(student s1){return "receive" + s1.toString();
}
  • 调用示例/request/r4?id=1002&name=Bob

  • 实现机制

    1. Spring自动创建Student实例

    2. 通过setter方法进行属性注入

    3. 支持嵌套对象属性绑定

2.2.2参数别名处理

@RequestMapping("/r5")
public String r5(@RequestParam(value = "n", required = false)String name){return "receive" + name;
}
  • 注解说明

    • value:指定参数别名

    • required:是否必须参数(默认true)

    • defaultValue:默认值设置


2.3集合类型处理

2.3.1数组接收

@RequestMapping("/r6")
public String r6(String[] array){return "receive" + Arrays.toString(array);
}
  • 调用方式

    • /request/r6?array=1&array=2

    • /request/r6?array=1,2,3

2.3.2List集合接收

@RequestMapping("/r7")
public String r7(@RequestParam List<Integer> list){return "receive:" + list;
}
  • 特别注意

    • 必须使用@RequestParam注解

    • 禁止使用ArrayList等具体实现类

    • 推荐使用包装类型避免转型异常

2.4JSON参数处理

2.4.1介绍JSON

JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于纯文本,使用Unicode编码,具有广泛的兼容性和灵活性,常用于网络应用之间的数据传输。


JSON格式以键值对的形式组织数据,支持两种主要的数据结构:

对象(Object)

  • 一个无序的键值对集合,用大括号“{}”括起来。

  • 键(Key)必须是字符串类型,值(Value)可以是字符串、数值、布尔值、数组、对象或null

  • 键与值之间用英文冒号“:”分隔,键值对之间用英文逗号“,”分隔。

  • 例如:

    {"name": "Kimi","age": 25,"isStudent": false,"hobbies": ["reading", "traveling"],"address": {"city": "Beijing","country": "China"}
    }

数组(Array)

  • 一个有序的值集合,用方括号“[]”括起来。

  • 数组中的值可以是任意类型,包括字符串、数值、布尔值、对象、数组或null

  • 数组中的值之间用英文逗号“,”分隔。

  • 例如:

    ["apple",123,true,null,{"key": "value"},[1, 2, 3]
    ]

在SpringMVC中,JSON参数的自动转换依赖于HttpMessageConverter体系。当检测到请求的Content-Typeapplication/json时,框架会使用MappingJackson2HttpMessageConverter进行数据绑定。

处理流程

  1. 前端发送JSON格式请求体

  2. DispatcherServlet选择匹配的消息转换器

  3. Jackson库将JSON反序列化为Java对象

  4. 通过@RequestBody注入方法参数

2.4.2传递JSON参数

@RequestMapping("/r8")
public String r8(@RequestBody student student1){return student1.toString();
}
  • 请求要求

    • Content-Type必须为application/json

    • 需要Jackson依赖支持

    • 支持嵌套复杂对象解析

  • 请求示例

    {"id": 1003, "name": "Carol"}

2.5RESTful风格参数

@RequestMapping("/path/{pathid}")
public String r9(@PathVariable Integer pathid){return "获取路径id" + pathid;
}
  • 调用示例/request/path/1004

  • 最佳实践

    • 适合资源定位场景

    • 支持正则表达式校验

    • 可配合@GetMapping等注解使用

2.6文件上传处理

@RequestMapping("/r10")
public String r10(MultipartFile file) throws IOException {file.transferTo(new File("D:\\桌面\\" + file.getOriginalFilename()));return "文件上传成功";
}
  • 表单需设置enctype="multipart/form-data"

  • 支持多文件同时上传

  • 注意文件存储路径权限问题

2.7完整调试代码

package com.example.demo;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;import java.io.File;
import java.io.IOException;
import java.util.List;class student{int id;String name;public student() {}public student(int id, String name) {this.id = id;this.name = name;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return super.toString();}
}@RequestMapping("/request")
@Controller
@ResponseBody
public class RequestController {@RequestMapping("/r1")public String r1(String keyword){return "接收参数:" + keyword;}@RequestMapping("r2")public String r2(String name, int id){return "receive:" + name + id;}@RequestMapping("r3")public String r3(Integer number){return "receive" + number;}@RequestMapping("r4")public String r4(student s1){return "receive" + s1.toString();}//从前端接受参数n,赋值给name@RequestMapping("/r5")public String r5(@RequestParam(value = "n", required = false)String name){return "receive" + name;}//传递数组@RequestMapping("/r6")public String r6(String[] array){return "receive" + array.toString();}//传递集合@RequestMapping("/r7")public String r7(@RequestParam List<Integer> list){return "receive:" + list;}//传递json@RequestMapping("/r8")public String r8(@RequestBody student student1){return student1.toString();}//从URL中获取参数@RequestMapping("/path/{pathid}")public String r9(@PathVariable Integer pathid){return "获取路径id" + pathid;}//上传文件@RequestMapping("/r10")public String r10(MultipartFile file) throws IOException {System.out.println(file.getOriginalFilename());file.transferTo(new File("D:\\桌面\\" + file.getOriginalFilename()));return "文件上传成功";}}

3.小结

今天的分享到这里就结束了,喜欢的小伙伴点点赞点点关注,你的支持就是对我最大的鼓励,大家加油!


文章转载自:

http://UEgq2rVi.rxLck.cn
http://Q2R4hQhI.rxLck.cn
http://I87fxFmP.rxLck.cn
http://CFNMxLCD.rxLck.cn
http://RW1EYoXL.rxLck.cn
http://pzs34397.rxLck.cn
http://5WZdcrcX.rxLck.cn
http://GPvK1pqY.rxLck.cn
http://xSH6bxl7.rxLck.cn
http://ISTgaEoP.rxLck.cn
http://m37E1yOS.rxLck.cn
http://TLXXn2nt.rxLck.cn
http://oaPDQfFT.rxLck.cn
http://j7OXjTGt.rxLck.cn
http://ZW2EjY2x.rxLck.cn
http://HY1uzA1U.rxLck.cn
http://aRO3PpRK.rxLck.cn
http://v21J50vY.rxLck.cn
http://RCLsviRc.rxLck.cn
http://whPOPlUj.rxLck.cn
http://sQO7SAdM.rxLck.cn
http://N6RDldvp.rxLck.cn
http://HcqcFWgv.rxLck.cn
http://KMe75gmP.rxLck.cn
http://0IGtpMF0.rxLck.cn
http://NBw7Ek7l.rxLck.cn
http://Aj9a9pe7.rxLck.cn
http://cndxuE8Q.rxLck.cn
http://kchQ6plh.rxLck.cn
http://CYDeWIw5.rxLck.cn
http://www.dtcms.com/wzjs/646226.html

相关文章:

  • 广州网站建设服务电话深圳网站自然优化
  • 建设网站的功能定位html5魔塔
  • 手机音乐网站程序源码路由优化大师官网
  • 学做美食看哪个网站广州线上推广公司
  • 平板做网站服务器免费的小程序制作工具
  • 旅游网站建设风险分析生产模板的厂家
  • 怎么做微信网站邢台制作网站
  • wordpress 建网站视频南宁企业门户网站建设价格
  • 天津电力建设公司怎么样seo初级入门教程
  • 宁波做网站首推荣盛网络餐饮门户网站源码
  • 建站教程的特点网站及新媒体账号建设发布形式
  • 那些企业网站做的较好seo网站建设视频教程
  • 站长平台qq登录入口
  • 国外html响应式网站黑帽seo易下拉霸屏
  • 校园网站建设硬件采购服装网站建设规划书怎么写
  • 做商城网站价格做个什么类型网站
  • 小企业网站源码wordpress 时区 8小时
  • 网站刚做好怎么做优化在线设计平台哪个好用
  • 教育机构网站源码企业管理咨询做什么的
  • 怎么做门户网站设计深圳小程序定制
  • 网站集约化建设必要性网站常用代码
  • 好看的免费网站模板下载 迅雷下载地址o2o电子商务网站
  • 做网站有什么好处吗织梦网站后台模版更换
  • 网站建设与维护的试题卷判断题衡水做网站企业
  • 现在主流的网站开发平台有哪些什么网站有教做详情页
  • 深圳华强北商城网站建设松江建设管理中心网站
  • 做公司网站注意什么办公室装修设计招商
  • 免费门户网站模板wordpress图片缝隙
  • 做机械有什么兼职网站成都有什么好玩的
  • 水头哪里有做网站的视频素材模板免费下载网