SpringMVC數據綁定


在你使用springMVC的數據綁定的時候,你沒有想過,沒有使用數據綁定前端如何向后端傳入數據,
這樣和使用springMVC數據綁定之間的區別,數據綁定的實質是什么。
(數據綁定是為了方便前后端數據傳遞)

  《一》   前端傳入參數(最初始的方法)

// url   http://locahost:8080/main?id = 1
// 后端controller
@requesetMapping(value = "/main")
publc int main(){
  int id = request.getparameter("id");
  return id;
}
// 原來表單提交的時候,url顯示的就是
http://locahost:8080/main?name = 1 &?age = 23 &?address = "jdsjf"
所以數據的綁定和原來學表單的提交密切相關,但是前后端數據之間的交互有很多,比如使用ajax

      

   最初始的時候,沒有參數綁定,自己手動將存入在request域里面的參數,手動取出來,然后在執行下一步操作。(例如表單提交時候,后端在request里面一個一個將表單中元素的數值取出來)

   問題:如果在前端傳入參數很多的時候,如何將這些參數,方便快捷的取出來?

 那么使用springMVC數據綁定可以解決上面問題嗎?

// 使用springmvc處理原始問題
// url http://locahost:8080/main?id = 1
@requestMapping(value = /main")
public int main(int id){
  return id;  
}

  通過上述代碼發現,使用springmvc數據綁定,只需要將controll方法體中的參數和url中綁定的參數名相同即可,不需要向之前從request域中取出數據。

     下面將從工作原理以及簡單數據綁定,復雜數據綁定介紹springMVC數據綁定

一. 工作原理

                                             

    注意:從上面的servletrequest驗證數據是存儲在servlet request 內置對象中

    核心部件:Databinder接口

    綁定過程如下:

 ( 1 ) Spring MVC ServletRequest 對象傳遞給 DataBinder
 ( 2 )將處理方法的 入參對象傳遞給 DataBinder
 ( 3 ) DataBinder 調用 ConversionService 組件進行數據類型轉換、數據格式化等工作,並將ServletRequest 對象中的消           息填充到參數對象中
(4 )調用 Validator 組件對已經綁定了請求消息數據的參數對象進行數據合法性校驗
(5 )校驗完成后會生成數據綁定結果 BindingResult 對象, Spring MVC 會將 BindingResult
      對象中的內容 賦給處理方法的相應參數 
 

 2019-8-24 :

    今天看視頻的視頻的時候看到一種數據綁定方式:

前端頁面中有

                    <form>

                             <input name = "username"  preholder = "用戶名">  

                             <input name = "password" preholder = "密碼">

                   </form>

后端方法里面直接寫

                 public String login(@RequestParam(value = "username) String username,

                                                 @RequestParam(value = "password) String password)

 

向上面這樣不是從request域中取出 form表單中的元素,而是通過使用注解的方式來制定獲取,第一次見

但是這種方式,好像在之前的數據中接口和映射文件之間的對應關系中使用過這個。

 

未完待續!!!!!!!!!!!!!!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM