最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

前端如何調(diào)用后端接口進行數(shù)據(jù)交互詳解(axios和SpringBoot)

 更新時間:2023年03月16日 12:02:27   作者:沓然  
一般來講前端不會給后端接口,而是后端給前端接口的情況比較普遍,下面這篇文章主要給大家介紹了關(guān)于前端如何調(diào)用后端接口進行數(shù)據(jù)交互的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前端調(diào)用后端接口,獲得數(shù)據(jù)并渲染

一、介紹

一個完善的系統(tǒng),前后端交互是必不可少的,這個過程可以分成下面幾步:

前端向后端發(fā)起請求后端接口接收前端的參數(shù)后,開始層層調(diào)用方法處理數(shù)據(jù)后端將最終數(shù)據(jù)返回給前端接口前端請求成功后,將數(shù)據(jù)渲染至界面

對于初學(xué)者而言,前后端交互感覺十分困難,其實并不難,現(xiàn)在,我們做一個小例子,在例子中,大家就明白了。

二、項目結(jié)構(gòu)

前端技術(shù):axios

后端技術(shù):SpringBoot(這個也無所謂,但是你一定要有控制層的訪問路徑,也就是所謂的請求地址對應(yīng)的方法,可以用SSM框架,SSH框架,都可以)

上面是大致的文件結(jié)構(gòu),相信大家后端的數(shù)據(jù)處理都沒問題,無非就是:

  • 控制層接收前端請求,調(diào)用對應(yīng)的業(yè)務(wù)層接口方法
  • 業(yè)務(wù)層實現(xiàn)類去實現(xiàn)業(yè)務(wù)層接口
  • 業(yè)務(wù)層實現(xiàn)類的方法內(nèi)調(diào)用數(shù)據(jù)層的接口
  • 數(shù)據(jù)層實現(xiàn)文件(mapper.xml)實現(xiàn)數(shù)據(jù)層接口
  • 然后處理結(jié)果層層返回

三、代碼編寫

我們只介紹前端界面+控制層,首先是前端界面

第一步:引入相關(guān)文件

這里的axios就是我們發(fā)起請求所必備的文件,這些文件在文章末尾會有給出。

前端代碼如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>測試</title>
    <script src="../static/js/jquery.min.js"></script>
    <script src="../static/js/axios.min.js"></script>
</head>
<body>
<span id="text">我是前端默認(rèn)值</span>
<script>
    window.onload =function() {  //一加載界面就調(diào)用
        $.ajax({url:"testTest?num=1",success:function(result){
                document.getElementById("text").innerHTML=result;
            }});
    };
</script>
</body>
</html>

后端控制層代碼如下:

    @RequestMapping("/testTest")  //控制層
    @ResponseBody
    public int testTest(int num) {
        if(num==1) return 1;
        if(num==2) return 2;
        return 0;
    }

很明顯,大家看看應(yīng)該就明白了,前端發(fā)請求時可以攜帶數(shù)據(jù),比如賬號、密碼啊等等,后端接收后,就可以處理啦,然后把處理結(jié)果返回給前端,

前端接收后,就可以渲染了,或者給出操作成功的提示。

效果:

四、運用

1、字符串、整形等(新增功能)

前端代碼:

 <el-dialog title="創(chuàng)建車輛裝備" :visible.sync="insertVisible" width="30%">
        <el-form :model="equipment" ref="equipment" label-width="100px" class="demo-ruleForm">
            <el-form-item label="名稱" prop="name">
                <el-input v-model="equipment.name"></el-input>
            </el-form-item>
            <el-form-item label="類型" prop="type">
                <el-input v-model="equipment.type"></el-input>
            </el-form-item>
            <el-form-item label="庫存數(shù)量" prop="inventory">
                <el-input type="number" v-model="equipment.inventory"></el-input>
            </el-form-item>
        </el-form>
        <span slot="footer" class="dialog-footer">
                <el-button @click="insertVisible = false">取 消</el-button>
                <el-button type="primary" @click="insertEquipment" data-toggle="modal" data-target="#myModal">確 定</el-button>
              </span>
    </el-dialog>
<script type="text/javascript">
    new Vue({
        el:"#box",
        data:{
            id:"",			//裝備主鍵
            equipment:{},				//一條equipment數(shù)據(jù)
            insertVisible:false //新增提示框控制器:true顯示/false隱藏
        },
        methods:{
            //打開新增提示框
            openInsertPanel:function(){
                this.insertVisible = true;
                this.equipment = {};
            },
            //創(chuàng)建equipment
            insertEquipment:function(){
                var name = this.equipment.name;
                var type = this.equipment.type;
                var inventory = this.equipment.inventory;
                var that = this;
                axios.put("insertEquipment?name="+name+"&type="+type+"&inventory="+inventory).then(function(result){
                    if(result.data.status){
                        that.selectAllEquipment();
                        that.insertVisible = false;
                    }else{
                        that.$message.error(result.data.message);
                        that.insertVisible = false;
                    }

                });
            },
        }
    });
</script>

后端代碼

    @RequestMapping("/insertEquipment")  //增加裝備
    @ResponseBody
    public ResultMap insertEquipment(String name, String type,String inventory) {
        try {
            int realInventory=Integer.valueOf(inventory);
            Equipment equipment=new Equipment(name,type,realInventory);
            equipmentService.insertEquipment(equipment);
            resultMap.setStatus(true);
        } catch (Exception e) {
            resultMap.setStatus(false);
            resultMap.setMessage(e.getMessage());
        }
        return resultMap;
    }

以上就是新增功能的運用

例子很簡單,但是用處很大,登錄校驗、數(shù)據(jù)展示、增刪改查都是這種流程,后端返回的數(shù)據(jù)類型不僅僅是Int,List和對象都是可以的。
下面給出文件地址,大家需要的自己下載:

jquery.min.js: jquery.min.js

axios.min.js: axios.min.js

總結(jié)

到此這篇關(guān)于前端如何調(diào)用后端接口進行數(shù)據(jù)交互(axios和SpringBoot)的文章就介紹到這了,更多相關(guān)前端調(diào)用后端接口數(shù)據(jù)交互內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于maven install 沒反應(yīng)的解決方法

    基于maven install 沒反應(yīng)的解決方法

    下面小編就為大家?guī)硪黄趍aven install 沒反應(yīng)的解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • 淺談MyBatis執(zhí)行SQL的兩種方式

    淺談MyBatis執(zhí)行SQL的兩種方式

    本文介紹MyBatis執(zhí)行SQL語句的2種方式,主要是SqlSession和Mapper接口以及它們的區(qū)別,具有一定的參考價值,感興趣的可以了解一下
    2021-08-08
  • 使用SpringBoot發(fā)送郵箱驗證碼的簡單實現(xiàn)

    使用SpringBoot發(fā)送郵箱驗證碼的簡單實現(xiàn)

    這篇文章主要介紹了使用SpringBoot發(fā)送郵箱驗證碼的簡單實現(xiàn),咱們今天來講使用QQ郵箱來發(fā)送和接收驗證碼,首先來介紹一下它在SpringBoot項目中的具體應(yīng)用,需要的朋友可以參考下
    2023-04-04
  • MySQL數(shù)據(jù)文件直接通過拷貝備份與恢復(fù)的操作方法

    MySQL數(shù)據(jù)文件直接通過拷貝備份與恢復(fù)的操作方法

    這篇文章主要介紹了MySQL數(shù)據(jù)文件直接通過拷貝備份與恢復(fù)的操作方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • Java Stream 并行流簡介、使用與注意事項小結(jié)

    Java Stream 并行流簡介、使用與注意事項小結(jié)

    Java8并行流基于Stream API,利用多核CPU提升計算密集型任務(wù)效率,但需注意線程安全、順序不確定及線程池管理,可通過自定義線程池與CompletableFuture結(jié)合實現(xiàn)更靈活的異步處理,本文給大家介紹Java Stream并行流簡介、使用與注意事項小結(jié),感興趣的朋友一起看看吧
    2025-08-08
  • 利用java實現(xiàn)二維碼和背景圖的合并

    利用java實現(xiàn)二維碼和背景圖的合并

    本文介紹如何使用java代碼將自動生成的二維碼放入背景模板中,對于java學(xué)習(xí)者或許有幫助,一起來看看。
    2016-07-07
  • Gradle:修改默認(rèn)的Build配置文件名方式

    Gradle:修改默認(rèn)的Build配置文件名方式

    這篇文章主要介紹了Gradle:修改默認(rèn)的Build配置文件名方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Java?處理樹形結(jié)構(gòu)數(shù)據(jù)的過程

    Java?處理樹形結(jié)構(gòu)數(shù)據(jù)的過程

    這篇文章主要介紹了Java?處理樹形結(jié)構(gòu)數(shù)據(jù)的過程,本文給大家分析具體實現(xiàn)過程,結(jié)合實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • SpringBoot整合MybatisPlus的教程詳解

    SpringBoot整合MybatisPlus的教程詳解

    這篇文章主要介紹了SpringBoot整合MybatisPlus的方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Java中Double、Float類型的NaN和Infinity的具體使用

    Java中Double、Float類型的NaN和Infinity的具體使用

    Java在處理浮點數(shù)運算時,提供了NaN和Infinity兩個常量,本文主要介紹了Java中Double、Float類型的NaN和Infinity的具體使用,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06

最新評論

探索| 大埔区| 中卫市| 通榆县| 阳城县| 嘉义市| 合阳县| 永新县| 聂拉木县| 巧家县| 大余县| 驻马店市| 逊克县| 抚顺市| 文昌市| 南漳县| 八宿县| 四平市| 宁陵县| 洪雅县| 嘉鱼县| 安宁市| 达尔| 乌兰浩特市| 永川市| 丹寨县| 元氏县| 屏山县| 鹿邑县| 怀安县| 东城区| 邮箱| 华容县| 洪江市| 普兰店市| 肥东县| 博客| 邵阳县| 隆化县| 大宁县| 龙山县|