SpringMVC传值

news2024/11/30 2:28:45

实现步骤

  1. 先看后台代码如何获取前端传过来的数据,直接在方法的参数列表中添加@RequestParam(xxx),再在后面加上参数列表即可

在这里插入图片描述
不过这样的方式会出现一个问题:当前端页面没有提交相应的数据过来的时候,后台会出现异常,所以在实际的开发中,如果不添加这个注解,同样能正常获取前端传递的数据,即使没有传递数据,也不会报错,如果必须要添加该注解,可以设置 isRequired = false 避免空值报错的问题

  1. 后台如何把值传递给前端,可以在方法的参数列表中添加Model对象,通过Model对象把值传递给前端,Model 可以视为 Map 和 Attribute 的结合体
    在这里插入图片描述
    前端可以直接用nl标签${userName}获取

在这里插入图片描述

这个 Model 对象还有一个只有一个参数的方法,那么这个时候传递值的 key 是什么呢?

key 就是所传递值的 类型(key 的首字母小写),例如:这里的 userName 是 String 类型,这里实际效果就相当于:model.addAttribute(“string”, userName)
在这里插入图片描述
在SpringMVC中,@RequestMapping(value=“user/add”) 中定义的value的值是前后台映射的重要标识。但是有可能 value 的值是动态的,那么又该如何处理呢?例如:在显示用户列表的界面,添加了显示每一个用户详情的功能
在这里插入图片描述
此时传递的参数是每一个被点击的用户的 username 属性,那么后台就会将传递在路径中的值作为参数处理,@PathVariable 的功能就是用来获取 url 中的动态参数
在这里插入图片描述
@RequestParam(xxx) 和 @PathVariable(xxx) 的异同

  1. 两种注解都是用于后台获取前端传递的值

  2. @RequestParam(“username”)主要用于 url 传值 http://localhost:8080/SpringMVC/user?username=Andy;而@PathVariable String username 主要用于REST风格的传值,而且是动态的值 http://localhost:8080/SpringMVC/user/Andy

  3. @RequestParam(“username”),前端传递的值不能为空,否则程序会出现异常;@RequestParam(“xxx”),在前端传递参数和后台形参不匹配(包括参数类型)的时候使用可以起到一个转换的作用;例如:在批量上传文件时,前端传递的 name 参数是字符串,而后台接收时定义的类型是数组

前端
在这里插入图片描述
后端
在这里插入图片描述
注意

  1. 在后台服务器跳转时,有时候可能会需要跳转的时候带参数到下一个链接;这种情况下可以使用 RedirectAttributes 来设值
    在这里插入图片描述
    不过要注意的是,传递的参数类型是 String 格式的,传递的值会以字符串的方式连接在跳转连接的后方

在这里插入图片描述
2. 如果要传递对象的话,可以采用如下方式

在这里插入图片描述
这种传递方式不会在跳转链接后拼接字符串,而是将值暂时放在 session 中,跳转完毕后,再删除传递的值
在这里插入图片描述
注意:动态参数传值包含多个小数点可能会出现数据丢失

在使用 @PathVariable(xxx) 标签取值的时候,如果参数有多个小数点(一个不会有问题),超过两个会出现数据丢失的情况;如下所示:

如果前端传递的参数是:user/cddufu@cn.ibm.com 那么在后台接收参数的时候会变成 cddufu@cn.ibm ;从而出现数据丢失(.com 不见了)

解决方案

(1) 把动态参数夹在中间,像这样:user/cddufu@cn.ibm.com/name (推荐)

(2) 修改 @GetMapping 注解为:@GetMapping(“/user/{username:.+}”)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/344554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Elasticsearch7.8.0版本进阶——数据读流程

目录一、数据读流程概述二、数据读流程步骤2.1、数据读流程图2.2、数据读流程步骤(从主分片或者副本分片检索文档的步骤顺序)2.3、数据读流程注意事项一、数据读流程概述 从主分片或者从其它任意副本分片检索文档。 二、数据读流程步骤 2.1、数据读流…

5_机试_递归和分治

一、递归 本章介绍程序设计中的另一个非常重要的思想一递归策略。递归是指函数直接或间接调用自身的一种方法,它通常可把一个复杂的大型问题层层转化为与原问题相似但规模较小的问题来求解。递归策略只需少量的程序就可描述解题过程所需的多次重复计算,…

谈谈Java多线程离不开的AQS

如果你想深入研究Java并发的话,那么AQS一定是绕不开的一块知识点,Java并发包很多的同步工具类底层都是基于AQS来实现的,比如我们工作中经常用的Lock工具ReentrantLock、栅栏CountDownLatch、信号量Semaphore等,而且关于AQS的知识点…

DDR4 信号说明

SDRAM Differential Clock :Differential clocks signal pairs , pair perrank . The crossing of the positive edgeand the negative edge of theircomplement are used to sample thecommand and control signals on theSDRAMSDRAM差分时钟:差分时钟信号对&#…

MagicThoughts|让ChatGPT变得更智能的Finetuned数据集

近两个月,ChatGPT无疑都是AI领域最炙手可热的话题。而它的成功,也引发了行业内外对于对话式AI、LLM模型商业化应用可能性的思考。诚然,尽管就目前来看ChatGPT对大部分问答都能基本做到“对答如流”。但是,ChatGPT本质上依旧是预训…

Flutter Modul集成到IOS项目

Flutter Modul集成到IOS项目中1. 创建一个Flutter Modul2.在既有应用中集成Flutter Modul2.1 Flutter的构建模式选择2.1.1 debug模式2.1.2 Release模式2.1.3 Podfile 模式2.2 Cocoapods管理依赖库集成方式2.3 直接在Xcode中集成framework2.4 Local Network Privacy Permissions…

采用 spring 配置文件管理Bean

文章目录采用 spring 配置文件管理Bean一、安装配置Maven二、Spring 框架1、Spring 官网三、Spring 容器演示-采用Spring配置文件管理Bean1、创建Manev项目2、添加Spring依赖3、创建杀龙骑士类4、创建勇敢骑士类5、采用传统方式让勇敢骑士完成杀龙任务6、采用Spring 容器让勇敢…

创建Ubuntu虚拟机与Windows共享的文件夹

目录 1、Windows创建一个共享文件夹 2、在虚拟机的设置中选择Windows下的共享文件夹 3、在Ubuntu中查看共享文件夹 1、Windows创建一个共享文件夹 该共享文件夹可以被Windows和Ubuntu访问,需要注意的是,Ubuntu在共享目录下的一些操作会受到限制&…

图解经典电路之OCL差分功放-三极管分立器件电路分析

下面从简到繁,从框架到细节的顺序讲解电路。即先讲框架,然后逐渐添加电路细节,所以大家跟上思路。 1、第一步,尽可能的抽象这个电路,等效如下: 图二 OCL等效电路 整个OCL电路,可以等效为一个大功率的运放,加上几个电阻电容构成了一个同向放大器,就是这么简单。 为了便…

Linux常用命令---系统常用命令

Linux系统常用命令场景一: 查看当前系统内核版本相关信息场景二: sosreport 命令场景三: 如何定位并确定命令?场景四:查看当前系统运行负载怎场景五: 查看当前系统的内存可用情况场景六:查看网卡…

【DOTA】目标检测数据集介绍与使用

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 DOTA 数据集简单介绍 1. 正文 1.1 简介 数据集包含来自不同的传感器和平台的航拍图。每张图像的像素尺寸在 800 800 到 20,000 20,000 之间&#xf…

如何编写接口测试用例?

接口测试用例如何编写?下面简单给大家讲解一下。 接口测试用例是目前软件开发中不可或缺的一个重要部分,因此编写接口测试用例同样重要。 接口测试用例的作用非常明显,它能够帮助我们了解产品正在考验、调整它如何表现在特定情境之下、产品是…

2023金三银四,测试人还能找到好工作吗?

按照往年的惯例,春节后复工的 3 月、4 月是人员跳槽最频繁的时候,俗称“金三银四”。然而,市场大环境的影响,很多行业感受到了一丝寒冷的气息。我们以为受影响比较轻的互联网行业,头上也充满乌云,所谓互联网…

2023年浙江交安安全员考试题库及答案

百分百题库提供交安安全员考试试题、交安安全员考试真题、交安安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 50.根据《建设工程安全生产管理条例》第65条规定,施工单位有下列()行…

JavaScript高级程序设计读书分享之3章——3.5操作符

JavaScript高级程序设计(第4版)读书分享笔记记录 适用于刚入门前端的同志 目录 操作符 一元操作符 递增/递减操作符 一元加和减 布尔操作符 逻辑非 逻辑与 逻辑或 乘性操作符 乘法操作符 除法操作符 取模操作符 加性操作符 加法操作符 减法操作符 关系操作符 相等操…

使用python将EXCEL表格中数据转存到数据库

使用Python将excel表格中数据转存到数据库 1. 思路: 1) 使用python读取excel表格中数据 2)根据数据生成sql语句 3)批量运行sql语句 2. 代码: import pandas as pddef readExcel(path, excel_file):return pd.read_e…

低代码开发平台|制造管理-质检管理搭建指南

1、简介1.1、案例简介本文将介绍,如何搭建制造管理-质检管理。1.2、应用场景质检分别包括来料质检、过程质检、成品质检,来料质检在采购物料入库后会自动发起来料质检的流程,质检合格才可提交结束流程;过程检是在生产过程中的质检…

小程序-滑块+iconfont下载本地使用

效果 <view style"padding: 5px;"><movable-area style"width: 100%;height: 100%;"><movable-view direction"all" style"width: 50px;height: 50px;background-color: green"> </movable-view></movable…

推荐一些不常见的搜索引擎

5.雅虎网来自 Yahoo.com 的屏幕截图&#xff0c;2023 年 2 月截至 2022 年 1 月&#xff0c;Yahoo.com&#xff08;Verizon Media&#xff09;的搜索市场份额为 11.2%。雅虎的优势在于多元化&#xff0c;除搜索外还提供电子邮件、新闻、金融等服务。二十多年来&#xff0c;雅虎…

MyBatis 之一(概念、创建项目、操作模式、交互流程)

1. MyBatis 是什么MyBatis 是一款优秀的持久层框架MyBatis 也是一个 ORM &#xff08;Object Relational Mapping&#xff09;框架&#xff0c;即对象关系映射它支持自定义 SQL、存储过程以及高级映射MyBatis 去除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作MyBatis…