Springboot实现HTML表单from简单的接收信息
HTML< from >元素
from可向Web服务器提交请求
普遍格式:
<from action="服务器地址" method="请求方式" enctype="数据格式">
<input type="submit" value="Test按钮">
</from>
- method请求方式有:
- get(默认)提交时,数据跟在URL之后
- post提交时,数据在请求体内
- enctype在post请求时,指定数据的格式
- application/w-www-form-urlencoded(默认)
- multipar/from-data
主要实现
<form action="http://localhost:8080/test"
method="post" enctype="multipart/form-data">
<!-- 隐藏框 -->
<input type="hidden" value="1" name="id">
<!-- 常态下输入 --> <hr>
<input type="text" name="username">
<!-- 密码 --><hr>
<input type="possword" name="password">
<!-- 日期 --><hr> <!-- 注意日期格式 yyyy-mm-dd,Date默认格式为yyyy/mm/dd -->
<input type="date" name="birthday" >
<!-- 单选 --><hr>
男 <input type="radio" name="sex" value="男" checked>
女 <input type="radio" name="sex" value="女" >
<!-- 多选 --><hr>
唱歌 <input type="checkbox" name="fav" value="唱歌">
rep <input type="checkbox" name="fav" value="rep">
篮球 <input type="checkbox" name="fav" value="篮球">
<!-- 文件 --><hr>
<input type="file" name="file">
<hr>
<input type="submit" value="提交" >
</form>
Pojo类层代码
需要注意的是,定义的属性要和input中的name名称一一对应
点击查看代码
public class User{
private Integer id;
private String username;
private String password;
private String sex;
// 转换日期格式
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthday;
private List<String> fav;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
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 String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public List<String> getFav() {
return fav;
}
public void setFav(List<String> fav) {
this.fav = fav;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", sex='" + sex + '\'' +
", birthday=" + birthday +
", fav=" + fav +
'}';
}
}
Controller层代码
点击查看代码
@RestController
public class TestController {
@RequestMapping("/test")
public String test(User user, MultipartFile file){
System.out.println("user:" + user);
System.out.println("file:" + file.getOriginalFilename());
return "success! ";
}
}
数据格式
客户端发送
- 编码
application/x-www-form-urlencoded: url编码application/json: json编码mutipart/form-data: 每部分编码可用不同
- from表单只能支持
application/x-www-form-urlencoded和mutipart/form-data格式发送 - 文件上传用
mutipart/form-data格式 - js代码可用支持任意格式发送
服务端接受
- 对
application/x-www-form-urlencoded和mutipart/form-data格式的数据,Spring接收方式统一,只需要用java bean的属性名一一对应请求参数名即可 - 对于
application/json格式的数据,Spring接收需要使用@RequestBody+java bean的方式
运行结果


参考:https://space.bilibili.com/37974444
Springboot实现HTML表单from简单的接收信息的更多相关文章
- php框架中的phalcon框架的安装,及初步认识,从表单提交简单的数据到数据库中
php框架中的phalcon框架的安装,及初步认识,从表单提交简单的数据到数据库中 1.phalcon框架的安装: phalcon框架在windows本地安装可以利用wamp软件,安装之后可以查看对应 ...
- SpringBoot(五)_表单验证
SpringBoot(五)_表单验证 参数校验在我们日常开发中非常常见,最基本的校验有判断属性是否为空.长度是否符合要求等,在传统的开发模式中需要写一堆的 if else 来处理这些逻辑,很繁琐,效率 ...
- jquery实现表单验证简单实例
/* 描述:基于jquery的表单验证插件. */ (function ($) { $.fn.checkForm = function (options) { var root = this; //将 ...
- AngularJS 表单提交后显示验证信息与失焦后显示验证信息
虽然说AngularJS的实时表单验证非常有用,非常高效方便,但是当用户还没有完成输入时便弹出一个错误提示,这种体验是非常糟糕的. 正常的表单验证逻辑应该是在用户提交表单后或完成当前字段中的输入后,再 ...
- Form表单的传递与接收
目录 表单的构建 后端接收 创建model 用Model接收表单的后端 表单的构建 我才知道这个东西,在开发中经常遇到表单的情况.一下子提交一串内容.表单元素 form,里面的内容必须有name字段. ...
- jquery.validate.js 表单验证简单用法
引入jquery.validate.js插件以及Jquery,在最后加上这个插件的方法名来引用.$('form').validate(); <!DOCTYPE html PUBLIC " ...
- JSP 用户表单的简单实现
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...
- [转] Form 表单数据处理 简单教程 formidable 使用心得
入门,高手见笑 表单数据一种是get方式, 另一种是post 方式 1.get方式 对于get方式,node处理起来非常简单 如以下代码: var urlParsed = url.parse(requ ...
- 在springboot中验证表单信息(六)
构建工程 创建一个springboot工程,由于用到了 web .thymeleaf.validator.el,引入相应的起步依赖和依赖,代码清单如下: 1 2 3 4 5 6 7 8 9 10 11 ...
- 2017年12月17日 ASP.NET 12个表单元素&&简单控件/复合控件
12个表单元素可以分为三大类 第一类:文本类 <input type = "text" /> //普通文本框 <input type = "passwo ...
随机推荐
- 使用Logstash同步Mysql到Easysearch
从 MySQL 同步数据到 ES 有多种方案,这次我们使用 ELK 技术栈中的 Logstash 来将数据从 MySQL 同步到 Easysearch . 方案前提 MySQL 表记录必须有主键,比如 ...
- 从Purge机制说起,详解GaussDB(for MySQL)的优化策略
本文分享自华为云社区<[华为云MySQL技术专栏]GaussDB(for MySQL) Purge优化>,作者:GaussDB 数据库. 在MySQL中,尤其是在使用InnoDB引擎时,P ...
- AgileConfig-1.9.4 发布,支持 OpenTelemetry
Hello 大家好,最新版的 AgileConfig 1.9.4 发布了.现在它可以通过 OpenTelemetry 对外提供 logs,traces,metrics 三个维度的数据.用户可以自由选择 ...
- 【Playwright+Python】系列教程(一)环境搭建及脚本录制
前言 看到这个文章,有的同学会说: 六哥,你为啥不早早就写完python系列的文章. 因为有徒弟需要吧,如果你也想学自学,那这篇文章,可以说是我们结缘一起学习的开始吧! 如果对你有用,建议收藏和转发! ...
- Linux下挂载NTFS格式的U盘
NTFS是Windows下的格式,在Linux下是识别不了的,要想在Linux上挂载NTFS格式的U盘需要安装软件以提供支持.软件名为ntfs-3g. 1.下载安装包 https://tuxera.c ...
- HarmonyOS SDK助力鸿蒙原生应用“易感知、易理解、易操作”
6月21-23日,华为开发者大会(HDC 2024)盛大开幕.6月23日上午,<HarmonyOS开放能力,使能应用原生易用体验>分论坛成功举办,大会邀请了多位华为技术专家深度解读如何通过 ...
- Kubernetes(三)实战入门
实战入门 本章介绍如何在kubernetes集群中部署一个nginx服务,并能够对其进行访问. 1. Namespace Namespace主要作用是实现多套环境的资源隔离或者多租户的资源隔离. 默认 ...
- HBase 中的 JVM 与 GC
HBase中JVM基本配置 在JVM中,默认情况下会设置minimum heap size 为 1/64 可用物理内存,并为maximum heap size设置 1/4 的物理可用内存(不过在Jav ...
- C#中关于 object,dynamic 一点使用心得
首先说一下使用场景 WebAPI接口入参使用 object和 dynamic 后续解析和处理 1.object和dynamic 区别 在.NET中,object和dynamic也有一些区别: obj ...
- 超大容量 | 瑞芯微RK3588J工业核心板新增16GB DDR + 128GB eMMC配置!
作为瑞芯微的金牌合作伙伴,创龙科技在2023年9月即推出搭载瑞芯微旗舰级处理器RK3588J的全国产工业核心板--SOM-TL3588. SOM-TL3588工业核心板是基于瑞芯微RK3588J/RK ...