Springboot实现HTML表单from简单的接收信息

IT技术2年前 (2022)发布 IT大王
0

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-urlencodedmutipart/form-data格式发送
  • 文件上传用mutipart/form-data格式
  • js代码可用支持任意格式发送

服务端接受

  • application/x-www-form-urlencodedmutipart/form-data格式的数据,Spring接收方式统一,只需要用java bean的属性名一一对应请求参数名即可
  • 对于application/json格式的数据,Spring接收需要使用@RequestBody + java bean的方式

运行结果

Springboot实现HTML表单from简单的接收信息

Springboot实现HTML表单from简单的接收信息

参考:https://space.bilibili.com/37974444

© 版权声明
好牛新坐标 广告
版权声明:
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com

相关文章