springboot前后端數(shù)據(jù)交互

1 前后端聯(lián)系

這個(gè)十分基礎(chǔ)吧,前端是提交的表單,在action里指定訪問的控制器域名。如下所示,在form標(biāo)簽指定了,userAdd的動(dòng)作,提交方式為post。

<form action="/userAdd" method="post">

之后,在后臺(tái)的控制層里,因?yàn)镾pring Boot的一個(gè)好處就是通過注解就可以進(jìn)行匹配,找到用戶登錄的代碼塊,使用@RequestMapping進(jìn)行標(biāo)記既可。

    @ResponseBody
    @RequestMapping("/userAdd")

這里看到@ResponseBody,很多人分不清楚。因?yàn)檫@注解可以很@controller進(jìn)行融合成為@RestController,其實(shí)為了區(qū)分,盡量不要進(jìn)行融合。這里做個(gè)解釋如下:
image.png

2 獲取前端參數(shù)的方式

2.1 HttpServletRequest方法

很古老的方法,簡單來說就是通過調(diào)用request的getParameter方法來獲取參數(shù)。不建議使用。如圖:
image.png

2.2 參數(shù)對應(yīng)法

若傳入的數(shù)據(jù)量很小,就幾個(gè)基礎(chǔ)參數(shù)。可以在這里直接指定變量來接受既可,比如登錄的時(shí)候,前端就提交了兩個(gè)String變量的登錄賬戶和登錄密碼,后臺(tái)接受如下:
image.png

2.3 javabean接受法

這是后臺(tái)很常用的接受方式,因?yàn)榇蠖鄶?shù)系統(tǒng)后臺(tái)是根據(jù)數(shù)據(jù)庫表來建立了對應(yīng)的實(shí)體類型(也就是常見的entity或POJO),而前端提交的數(shù)據(jù)幾乎都與這些實(shí)體類里的成員相關(guān)。所以在進(jìn)行數(shù)據(jù)操作時(shí),很多后臺(tái)都是直接接受對應(yīng)的實(shí)體對象,然后在從接受的實(shí)體對象中取出對應(yīng)的值。如下:
image.png

但是,使用這種辦法必須值得提醒的是:前端頁面里的數(shù)據(jù)名字必須和實(shí)體成員的名字一樣?。?!否則無法對應(yīng)
比如:前端是name="userAcount"

登錄賬戶:<input type="text" name="userAcount" /></br>

實(shí)體中的成員名字必須是:userAcount

public class User {

    private String userAcount;

2.4 混合型

當(dāng)然,這種情況也非常多。因?yàn)楹笈_(tái)操作會(huì)用到非常多的數(shù)據(jù)聯(lián)表操作,可能從前端接受的不止是一個(gè)實(shí)體對象中的成員,可能有其他實(shí)體對象中的成員,也可能還有其余的基礎(chǔ)成員。
這個(gè)時(shí)候,為了方便SQL數(shù)據(jù)的取出,就會(huì)創(chuàng)建一個(gè)新的POJO類來包含以上所有的實(shí)體成員,出現(xiàn)了一個(gè)大的POJO類里還有其余POJO類的情況。
比如以下,就是一個(gè)userAll類繼承了User,此外還有一個(gè)UserLove(用戶愛好)的POJO類

public class userAll extends User{`
    private UserLove userLove;

這個(gè)時(shí)候,前端傳入的參數(shù)里既有User的成員信息,也有UserLove里的成員信息,我們不能在后臺(tái)直接使用userAll來接受。

public String addUser(userAll userAll)//錯(cuò)誤的方法

因?yàn)?,后臺(tái)接受不了UserLove里某個(gè)成員的信息,比如UserLove里有個(gè)loveSport成員,前端的傳入loveSport的值為football,后臺(tái)是接收不了這個(gè)loveSport的值。除非前端傳入整個(gè)UserLove類,但是前端一般不會(huì)傳入數(shù)據(jù)組的。

這個(gè)時(shí)候,還是老老實(shí)實(shí)的接受多個(gè)POJO類既可。如:

public String addUser(User user,UserLove userLove)

然后默默取出值就行。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,621評論 1 32
  • 點(diǎn)擊查看原文 Web SDK 開發(fā)手冊 SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個(gè)完善的 IM 系統(tǒng)...
    layjoy閱讀 14,278評論 0 15
  • 阿里巴巴 JAVA 開發(fā)手冊 1 / 32 Java 開發(fā)手冊 版本號(hào) 制定團(tuán)隊(duì) 更新日期 備 注 1.0.0 阿...
    糖寶_閱讀 7,879評論 0 5
  • 一、編程規(guī)約 (一)命名規(guī)約 【強(qiáng)制】 代碼中的命名均不能以下劃線或美元符號(hào)開始,也不能以下劃線或美元符號(hào)結(jié)束。反...
    喝咖啡的螞蟻閱讀 1,601評論 0 2
  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時(shí),會(huì)觸發(fā)此異常。 O...
    我想起個(gè)好名字閱讀 5,918評論 0 9

友情鏈接更多精彩內(nèi)容