Springboot實現HTML表單from簡單的接收信息

来源:https://www.cnblogs.com/wywbo/archive/2022/11/30/16939033.html
-Advertisement-
Play Games

HTML< from >元素 from可向Web伺服器提交請求 普遍格式: <from action="伺服器地址" method="請求方式" enctype="數據格式"> <input type="submit" value="Test按鈕"> </from> method請求方式有: get ...


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的方式

運行結果

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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 大數據時代,資料庫 SaaS 是企業實現降本增效和業務創新的重要抓手。在騰訊全球數字生態大會資料庫 SaaS 專場上,騰訊雲發佈了多項資料庫 SaaS 產品能力升級,並重點分享了其在上雲、日常運維、資料庫遷移等多方面的實踐應用,為廣大企業構建和提升自身數據能力提供了有效參考。 騰訊雲資料庫副總經理羅 ...
  • 大量的數據科學職位需要精通 SQL,它也是數據分析師、數據科學家、數據建模崗最常考核的面試技能。在本篇內容中 ShowMeAI 將梳理彙總所有面試 SQL 問題,按照不同的主題構建練習專項塊。 ...
  • 閱識風雲是華為雲信息大咖,擅長將複雜信息多元化呈現,其出品的一張圖(雲圖說)、深入淺出的博文(雲小課)或短視頻(雲視廳)總有一款能讓您快速上手華為雲。更多精彩內容請單擊此處。 摘要:購買Redis實例時,實例類型有單機、主備、Proxy集群、Cluster集群和讀寫分離這麼多種,該怎麼選?別擔心,本 ...
  • TIS整合ChunJun實操 B站視頻: https://www.bilibili.com/video/BV1QM411z7w5/?spm_id_from=333.999.0.0 一、ChunJun 概述 ChunJun是一款易用、穩定、高效的批流統一的數據集成框架,可基於實時計算引擎Flink實現 ...
  • 當我們把介面都做好以後,我們需要去開發前端界面。 添加文章功能裡面,最重要的就是文章內容部分,需要配置上富文本編輯器,這樣才能給我們的內容增加樣式。 下載ueditor代碼 ueditor已經很久沒有更新了,我們現在去github下載壓縮好的代碼包 https://github.com/fex-te ...
  • 好家伙,本篇將繼續完善前端界面 效果展示: 1.註冊登陸 (後端已啟動) 2.註冊表單驗證 (前端實現的表單驗證) 在此之前: 我的第一個項目(二):使用Vue做一個登錄註冊界面 - 養肥胖虎 - 博客園 (cnblogs.com) 後端部分: 我的第一個項目(三):註冊登陸功能(後端) - 養肥胖 ...
  • Unhandled Runtime Error TypeError: Cannot read properties of null (reading '1') 錯誤再現 # 1. 安裝 next yarn add next # 2. 配置頁面 pages # 3. 啟動項目 ## 當啟動項目的時候, ...
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 前言 最近項目遇到一個要在網頁上錄音的需求,在一波搜索後,發現了 react-media-recorder 這個庫。今天就跟大家一起研究一下這個庫的源碼吧,從 0 到 1 來實現一個 React 的錄音、錄像和錄屏的功能。 完整項目代碼放 ...
一周排行
    -Advertisement-
    Play Games
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...