SpringMVC(2)——controller方法参数与html表单对应

controller方法参数与html表单对应

0. User实体类

import org.springframework.format.annotation.DateTimeFormat;import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;public class User implements Serializable {private static final long serialVersionUID = -292375206744176903L;private String username;private String password;private Integer age;private Fun fun;private List<Fun> list;@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")private Date birthday;@Overridepublic String toString() {return "User{" +"username='" + username + '\'' +", password='" + password + '\'' +", age=" + age +", fun=" + fun +", list=" + list +", birthday=" + birthday +", map=" + map +'}';}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}private Map<String, Fun> map;public Map<String, Fun> getMap() {return map;}public void setMap(Map<String, Fun> map) {this.map = map;}public List<Fun> getList() {return list;}public void setList(List<Fun> list) {this.list = list;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getUsername() {return username;}public Fun getFun() {return fun;}public void setFun(Fun fun) {this.fun = fun;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}

1. 基本类型+String类型

@RequestMapping(path = "/save1")public String save1(String username, String age) {System.out.println("save1方法执行了!!!" + username + ":" + age);return "suc";}

在JSP的form表单元素中不需要做特殊处理,直接映射即可

<h3>请求参数绑定入门</h3><form action="/user/save1" method="post">姓名:<input type="text" name="username"/><br/>年龄:<input type="text" name="age"/><br/><input type="submit" value="提交"/>
</form>

在这里插入图片描述

在这里插入图片描述

2. 实体类对象

@RequestMapping(path = "/save2")public String save2(User user) {System.out.println("save2方法执行了!!!" + user.toString());return "suc";}
<h3>请求参数绑定(封装到实体类)</h3><form action="/user/save2" method="post">姓名:<input type="text" name="username"/><br/>年龄:<input type="text" name="age"/><br/><input type="submit" value="提交"/>
</form>

这里的name属性必须与User表的字段名相同,否则会报错

在这里插入图片描述
在这里插入图片描述

3. 实体类对象(包含自定义引用类型)

<form action="/user/save3" method="post">姓名:<input type="text" name="username"/><br/>年龄:<input type="text" name="age"/><br/>f1:<input type="text" name="fun.f1"/><br/><input type="submit" value="提交"/>
</form>

用字段名.字段名的方式传值
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4. 实体类对象(包含数组[])

<form action="/user/save4" method="post">姓名:<input type="text" name="username"/><br/>年龄:<input type="text" name="age"/><br/>金额:<input type="text" name="fun.f3"/><br/>集合:<input type="text" name="list[0].f1"/><br/>集合:<input type="text" name="list[1].f1"/><br/><input type="submit" value="提交"/>
</form>

固定写法,只能用list而不能用arr
在这里插入图片描述
在这里插入图片描述

5. 实体类对象(存在map)

<h3>请求参数绑定(封装到实体类,存在Map集合)</h3><form action="/user/save5" method="post">姓名:<input type="text" name="username"/><br/>年龄:<input type="text" name="age"/><br/>金额:<input type="text" name="fun.f2"/><br/>map集合---key1对应的Fun对象的f1赋值:<input type="text" name="map['key1'].f1"/><br/>map集合---key1对应的Fun对象的f2赋值:<input type="text" name="map['key1'].f2"/><br/>map集合---key2对应的Fun对象的f3赋值:<input type="text" name="map['key2'].f3"/><br/><input type="submit" value="提交"/>
</form>

也是固定写法,[]内部写key,外部的.跟value

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

ES7210高性能四通道音频ADC转换模拟麦克风为IIS数字咪头

特征 高性能多位 Delta-Σ 音频 ADC 102 dB 信噪比 -85 分贝 THDN 24 位&#xff0c;8 至 100 kHz 采样频率 I2S/PCM 主串行数据端口或从串行数据端口 支持TDM 256/384Fs、USB 12/24 MHz 和其他非标准音频系统时钟 低功耗待机模式 应用 麦克风阵列 智能音箱 远场语音捕获 订购…

微服务的分布式事务解决方案

微服务的分布式事务解决方案 1、分布式事务的理论模型1.1、X/Open 分布式事务模型1.2、两阶段提交协议1.3、三阶段提交协议 2、分布式事务常见解决方案2.1、TCC补偿型方案2.2、基于可靠性消息的最终一致性方案2.3、最大努力通知型方案 3、分布式事务中间件 Seata3.1、AT 模式3.…

人工智能在软件开发中的角色:助手还是取代者?

人工智能在软件开发中的角色&#xff1a;助手还是取代者&#xff1f; 随着科技的飞速发展&#xff0c;生成式人工智能&#xff08;AIGC&#xff09;在软件开发领域的应用越来越广泛。从代码生成、错误检测到自动化测试&#xff0c;AI工具正成为开发者的重要助手。然而&#xf…

Postgresql - 用户权限数据库

1、综述 在实际的软件项目开发过程中&#xff0c;用户权限控制可以说是所有运营系统中必不可少的一个重点功能&#xff0c;根据业务的复杂度&#xff0c;设计的时候可深可浅&#xff0c;但无论怎么变化&#xff0c;设计的思路基本都是围绕着用户、部门、角色、菜单这几个部分展…

Django QuerySet对象,filter()方法

filter()方法 用于实现数据过滤功能&#xff0c;相当于sql语句中的where子句。 filter(字段名__exact10) 或 filter(字段名10)类似sql 中的 10 filter(字段名__gt10) 类似SQL中的 >10 filter(price__lt29.99) 类似sql中的 <29.99 filter(字段名__gte10, 字段名__lte20…

程序升级bootloader

文章目录 概述什么是bootloader&#xff1f;为什么用&#xff1f;bootloader启动流程图步骤 下载过程代码获取本地配置信息获取主机传过来的配置信息bootloader发送2给上位机&#xff0c;上位机发送文件给bootloader根据网站复制CRC 烧写flasherase启动编译问题 概述 用keil编…

声明队列和交换机 + 消息转换器

目录 1、声明队列和交换机 方法一&#xff1a;基于Bean的方式声明 方法二&#xff1a;基于Spring注解的方式声明 2、消息转换器 1、声明队列和交换机 方法一&#xff1a;基于Bean的方式声明 注&#xff1a;队列和交换机的声明是放在消费者这边的&#xff0c;这位发送的人他…

Dynamic Web Module facet version问题

The default superclass, "javax.servlet.http.HttpServlet", according to the projects Dynamic Web Module facet version (3.1), was not found on the Java Build Path. 1.右键项目 2.点击Properties 3.点击Java Build Path&#xff0c;右边找到Libraries&…

大模型在营销领域的探索及创新

1 AIGA介绍 2 AIGA在营销领域的 应用和探索 3 总结与展望

java 如何暴露header给前端

在Java中&#xff0c;将HTTP响应的Header暴露给前端通常涉及在Web应用程序的服务器端代码中设置这些Header。这可以通过不同的Java Web框架来实现&#xff0c;比如Spring MVC、JAX-RS&#xff08;Jersey&#xff09;、Servlet等。这里&#xff0c;我将提供一个使用Spring MVC框…

学习笔记——交通安全分析13

目录 前言 当天学习笔记整理 5城市主干道交通安全分析 结束语 前言 #随着上一轮SPSS学习完成之后&#xff0c;本人又开始了新教材《交通安全分析》的学习 #整理过程不易&#xff0c;喜欢UP就点个免费的关注趴 #本期内容接上一期12笔记 当天学习笔记整理 5城市主干道交…

docker-compose Install gitlab 17.1.1

gitlab 前言 GitLab 是一个非常流行的开源 DevOps 平台,用于软件开发项目的整个生命周期管理。它提供了从版本控制、持续集成/持续部署(CI/CD)、项目规划到监控和安全的一系列工具。 前提要求 Linux安装 docker docker-compose 参考Windows 10 ,11 2022 docker docker-c…

多线程爬虫技术详解

&#x1f380;引言❤❤ 在当今信息爆炸的时代&#xff0c;网络爬虫&#xff08;Web Crawler&#xff09;作为一种自动获取网页内容的程序&#xff0c;已经成为数据挖掘和信息检索不可或缺的工具。多线程爬虫作为提高爬虫效率的重要手段&#xff0c;通过并行处理技术大幅度提升…

开发个人Go-ChatGPT--4 用户管理

开发个人Go-ChatGPT–4 用户管理 先看下我的目录结构&#xff0c;可以根据个人爱好&#xff0c;进行重构 |-- Dockerfile |-- LICENSE |-- common | |-- callmodel | | |-- gemma.go | | -- models.go | |-- consts | | |-- code.go | | |-- common.go |…

k8s 部署RuoYi-Vue-Plus之nginx部署

1.挂载存储 可参考 之前文章设置 https://blog.csdn.net/weimeibuqieryu/article/details/140183843 2.部署yaml 先创建命名空间ruoyi, 有就不用创建了 kubectl create namespace ruoyi我暂不需要使用xxjob和Monitor模块, 所以去除了. 有需要再自行添加 需要先启动后端服务…

(ECCV,2022)Mask-CLIP:从CLIP中提取自由密集标签

文章目录 Extract Free Dense Labels from CLIP相关资料摘要引言方法Mask-CLIPMask-CLIP 实验 Extract Free Dense Labels from CLIP 相关资料 代码&#xff1a;https://github.com/chongzhou96/MaskCLIP 论文&#xff1a;https://arxiv.org/abs/2112.01071 摘要 对比语言-…

SprongBoot及其基础应用全套部署脚本和配置

POM.xml配置 </dependencies> <!--skywalking日志监控依赖--><dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-logback-1.x</artifactId><version>8.5.0</version></dependency&g…

修改编译依赖openssl的libcrypto.so

由于centos7默认使用openssl1.0.2k的libcrypto.so.10共享库。即使openssl升级为3.0.11后&#xff0c;编译使用ldd命令查看共享库依旧会引用libcrypto.so.10。 现希望引用libcrypto.so.3&#xff0c;需要在生成动态链接库的CMakeLists.txt中增加如下配置&#xff0c;明确指定ope…

《警世贤文》摘抄:守法篇、惜时篇、修性篇、修身篇、待人篇、防人篇(建议多读书、多看报、少吃零食多睡觉)

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/140243440 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

mysql 连接出现 Public Key Retrieval is not allowed

在MySQL连接中出现“Public Key Retrieval is not allowed”错误&#xff0c;通常是因为在使用安全套接字层&#xff08;SSL&#xff09;连接时遇到了问题。这是因为MySQL 8.0及以上版本对安全性要求更高&#xff0c;特别是在使用密码插件如caching_sha2_password时&#xff0c…