springmvc前端传参,后端接收

RequestMapping注解

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {String name() default "";@AliasFor("path")String[] value() default {};@AliasFor("value")String[] path() default {};RequestMethod[] method() default {};String[] params() default {};String[] headers() default {};String[] consumes() default {};String[] produces() default {};
}

作用: 建立请求URL和处理方法之间的对应关系 出现位置:方法和类上 作用在类上:第一季访问目录 作用在方法上:第二级访问目录 注意:路径可以不写 / 表示应用的根目录开始 属性: path:指定请求的url value:value属性和path属性一样 mthod:指定该方法的请求方式 params:指定限制请求参数条件 headers:发送请求中必须包含的请求头

请求参数的绑定

  • 基本数据类型和字符串类型

  • 实体类(javabean)

  • 集合数据类型(list、map集合等)

  • 以传递用户名和密码为例,修改index.jsp页面,添加绑定参数

<html>
<body>
<h2>Hello World!</h2>
<h1>Login</h1>
<a href="/param?username=oneStar&password=123">login</a>
</body>
</html>
  • 在控制层添加请求映射,以参数的形式进行传递
    @RequestMapping(path = "/param")public String user(@RequestParam("username") String username,@RequestParam("password") String password){System.out.println(username);System.out.println(password);return "success";}
  • 实体类绑定参数
  • 创建实体类

package com.pyb.pojo;
​
/*** @version 1.0* @Author 彭彦彬* @Date 2025/1/9 21:01* @注释*/
public class User {private String username;private String password;
​public User(String username, String password) {this.username = username;this.password = password;}
​public User() {}
​public String getUsername() {return username;}
​public void setUsername(String username) {this.username = username;}
​public String getPassword() {return password;}
​public void setPassword(String password) {this.password = password;}
​@Overridepublic String toString() {return "User{" +"username='" + username + '\'' +", password='" + password + '\'' +'}';}
}
​
  • 修改index.jsp页面

<html>
<body>
<h1>Pojo</h1>
<form action="/saveUser" method="post">username<input type="text" name="username"/><br>password<input type="text" name="password"/><br><input type="submit" value="Button"/><br>
</form>
</body>
</html>
​
  • 在控制层添加请求映射

  @RequestMapping("/saveUser")public String saveUser(User user) {System.out.println(user);return "success";}
  • 运行后在页面上输入用户名和密码点击提交即可将数据传递给服务器

  • 集合绑定参数

为了方便将数据绑定到List集合和Map集合,这里设置两个用户名和密码,一个用List集合绑定,一个用Map集合绑定

  • 修改index.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Collection Binding Parameters</title>
</head>
<body>
<h1>Collection and Map Binding Parameters</h1>
<form action="/mapUser" method="post">User: <input type="text" name="list[0].username"/><br>Password: <input type="password" name="list[0].password"/><br>User: <input type="text" name="map['one'].username"/><br>Password: <input type="password" name="map['one'].password"/><br><input type="submit" value="Submit"/><br>
</form>
</body>
</html>
  • 编写集合实体类

package com.pyb.pojo;
import java.util.List;
import java.util.Map;
/*** @version 1.0* @Author 彭彦彬* @Date 2025/1/9 21:13* @注释*/
public class mapUser {private String username;private String password;
​List<mapUser> list;Map<String,mapUser> map;
​public String getUsername() {return username;}
​public void setUsername(String username) {this.username = username;}
​public String getPassword() {return password;}
​public void setPassword(String password) {this.password = password;}
​public List<mapUser> getList() {return list;}
​public void setList(List<mapUser> list) {this.list = list;}
​public Map<String, mapUser> getMap() {return map;}
​public void setMap(Map<String, mapUser> map) {this.map = map;}
​@Overridepublic String toString() {return "mapUser{" +"username='" + username + '\'' +", password='" + password + '\'' +", list=" + list +", map=" + map +'}';}
}
  • 在控制层添加请求映射

    @RequestMapping(path="/mapUser")     //请求映射public String mapUser(mapUser mapuser){System.out.println(mapuser);return "success";}
  • 运行后在页面上输入用户名和密码点击提交即可将数据以集合形式传递给服务器

解决中文乱码

在绑定参数的时候,当有中文时会出现乱码,而SpringMVC提供了解决方法,在web.xml添加过滤器进行配置即可

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

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

相关文章

分布式锁 Redis vs etcd

为什么要实现分布式锁?为什么需要分布式锁,分布式锁的作用是什么,哪些场景会使用到分布式锁?分布式锁的实现方式有哪些分布式锁的核心原理是什么 如何实现分布式锁redis(自旋锁版本)etcd 的分布式锁(互斥锁(信号控制)版本) 分布式锁对比redis vs etcd 总结 为什么要实现分布式…

【Excel/WPS】根据平均值,生成两列/多列指定范围的随机数/随机凑出两列数据

原理就是通过随机生成函数和平均值函数。 适用场景&#xff1a;在总体打分后&#xff0c;需要在小项中随机生成小分数 第一列&#xff1a;固定的平均值A2第二列&#xff1a; RANDBETWEEN(A2-10,A210)第三列&#xff1a;根据第二列用平均值函数算除 A2*2-B2这是随机值1的公式&am…

芯片详细讲解,从而区分CPU、MPU、DSP、GPU、FPGA、MCU、SOC、ECU

目录 芯片的概念结构 芯片的派系划分 通用芯片&#xff08;CPU&#xff0c;MPU&#xff0c;GPU&#xff0c;DSP&#xff09; 定制芯片&#xff08;FPGA&#xff0c;ASIC&#xff09; 芯片之上的集成&#xff08;MCU&#xff0c;SOC&#xff0c;ECU&#xff09; 软硬件的匹…

运动相机拍摄的视频打不开怎么办

3-10 GoPro和大疆DJI运动相机的特点&#xff0c;小巧、高清、续航长、拍摄稳定&#xff0c;很多人会在一些重要场合用来拍摄视频&#xff0c;比如可以用来拿在手里拍摄快速运动中的人等等。 但是毕竟是电子产品&#xff0c;有时候是会出点问题的&#xff0c;比如意外断电、摔重…

智能化文档开发(DI)

这个文档涉及到多模态&#xff08;文本、发票、订单、语音&#xff09; 对于普通的文本&#xff0c;我们希望对某些实体的某些属性挖空生成文档模版&#xff0c;并根据预设字段填空最后生成正式文件对于发票、订单&#xff0c;我们想提取它的字段信息&#xff0c;写入DB对于一些…

CSS语言的编程范式

CSS语言的编程范式 引言 在现代网页开发中&#xff0c;CSS&#xff08;层叠样式表&#xff09;作为一种样式语言&#xff0c;承担着网站前端呈现的重要角色。无论是简单的静态网页还是复杂的单页应用&#xff0c;CSS都在人机交互中发挥着至关重要的作用。掩盖在美观背后的&am…

【轻松学C:编程小白的大冒险】--- C语言简介 02

在编程的艺术世界里&#xff0c;代码和灵感需要寻找到最佳的交融点&#xff0c;才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里&#xff0c;我们将共同追寻这种完美结合&#xff0c;为未来的世界留下属于我们的独特印记。 【轻松学C&#xff1a;编程小白的大冒险】…

零基础 监控数据可视化 Spring Boot 2.x(Actuator + Prometheus + Grafana手把手) (上)

一、安装Prometheus Releases prometheus/prometheus GitHubhttps://github.com/prometheus/prometheus/releases 或 https://prometheus.io/download/https://prometheus.io/download/ 1. 下载适用于 Windows 的二进制文件&#xff1a; 找到最新版本的发布页面&#xf…

Idea日志乱码

问题描述 前提&#xff1a;本人使用windows Idea运行sh文件&#xff0c;指定了utf-8编码&#xff0c;但是运行过程中还是存在中文乱码 Idea的相关配置都已经调整 字体调整为雅黑 文件编码均调整为UTF-8 调整Idea配置文件 但是还是存在乱码&#xff0c;既然Idea相关配置已经…

Linux 注册线程化的中断处理程序

1. 注册线程化中断处理函数 devmem_request_threaded_irq 是 Linux 内核中的一个函数&#xff0c;用于请求并注册一个线程化的中断处理程序。这个函数允许开发者注册一个中断处理函数&#xff0c;这个函数会在中断发生时被调用&#xff0c;从而实现相应的中断处理逻辑。它通过…

MySQL 数据表与索引设计艺术:打造高效数据存取架构

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《MySQL技术精粹》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、什么是MySQL 2、MySQL适用场景 二、MySQL的数据存储与检索 1、数据表…

安卓硬件加速hwui

安卓硬件加速 本文基于安卓11。 从 Android 3.0 (API 级别 11) 开始&#xff0c;Android 2D 渲染管道支持硬件加速&#xff0c;这意味着在 View 的画布上执行的所有绘图操作都使用 GPU。由于启用硬件加速所需的资源增加&#xff0c;你的应用程序将消耗更多内存。 软件绘制&am…

海信116英寸RGB-Mini LED:一朵绽放在科技穹顶的中国花火

东方古镇的打铁花&#xff0c;拉斯维加斯的烟花秀&#xff0c;盛大的花火表演总会在岁末年初的时候&#xff0c;吸引世界各地人们的目光。一年一度的科技展会&#xff0c;也起到烟花秀一样的作用&#xff0c;让人们提前望见未知的精彩。 CES还没开始&#xff0c;CES 2025展会的…

超简单,使用Kube-Vip实现K8s高可用VIP详细教程

具体步骤如下&#xff1a; 以下步骤在其中一个 master 上操作即可&#xff0c; 1、参数配置 export VIP192.168.0.110 export INTERFACEens33 export KVVERSIONv0.8.7VIP 是虚拟IP地址&#xff0c;和主机同一个网段&#xff0c;且未被占用。INTERFACE 是你当前主机的网络接口…

积分漏斗模型中5个指标统计

缘起 最近遇到一个积分漏斗模型的设计&#xff0c;这里记录一下。以防止以后忘记了。其中毕竟关键的属性是&#xff1a; 获得积分可用积分已有积分 积分漏斗模型 这里随着【当前日期】也就是今天日期。随着时间一天天过去&#xff0c;积分也一天天过去。上面那个【填报时间】…

Ubuntu挂载Windows 磁盘,双系统

首先我们需要在终端输入这个命令&#xff0c;来查看磁盘分配情况 lsblk -f 找到需要挂载的磁盘&#xff0c;检查其类型&#xff08; 我的/dev/nvme2n1p1类型是ntfs&#xff0c;名字叫3500winData&#xff09; 然后新建一个挂载磁盘的目录&#xff0c;我的是/media/zeqi/3500wi…

程序血缘分析技术在工商银行软件工程中的应用

当前,随着软件领域技术更新换代速度的日益加快,市场需求也变得更加多样化和个性化,业界普遍通过加速产品迭代来满足客户需求,但在此过程中也暴露出一些研发管理痛点问题,如服务和程序类资产信息分散于各个不同的应用和系统中,信息归集费时费力;设计、开发和测试人员无法…

微信小程序中 隐藏scroll-view 滚动条 网页中隐藏滚动条

在微信小程序中隐藏scroll-view的滚动条可以通过以下几种方法实现&#xff1a; 方法一&#xff1a;使用CSS隐藏滚动条 在小程序的样式文件中&#xff08;如app.wxss或页面的.wxss文件&#xff09;&#xff0c;添加以下CSS代码来隐藏滚动条&#xff1a; scroll-view ::-webkit…

服务器证书不受信任是什么问题?

用户在访问某些网站时&#xff0c;可能会遇到“服务器证书不受信任”的警告。这一问题不仅影响用户的浏览体验&#xff0c;更可能对网站的信誉和安全性产生深远影响。那么服务器证书不受信任是什么问题呢&#xff1f; 服务器证书的基本概念 服务器证书是由证书颁发机构(CA)签…

【AI游戏】使用强化学习玩 Flappy Bird:从零实现 Q-Learning 算法(附完整资源)

1. 引言 Flappy Bird 是一款经典的休闲游戏&#xff0c;玩家需要控制小鸟穿过管道&#xff0c;避免碰撞。虽然游戏规则简单&#xff0c;但实现一个 AI 来自动玩 Flappy Bird 却是一个有趣的挑战。本文将介绍如何使用 Q-Learning 强化学习算法来训练一个 AI&#xff0c;使其能够…