日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Spring MVC數據綁定概述及原理詳解

瀏覽:27日期:2023-08-30 18:07:11

數據綁定概述

在執行程序時,Spring MVC根據客戶端請求參數的不同,將請求消息中的信息以一定的方式轉換并綁定到控制器類的方法參數中。

這種將請求消息數據與后臺方法參數建立連接的過程就是 Spring MVC中的數據綁定。

在數據綁定過程中,Spring MVC框架會通過數據綁定組件(DataBinder)將請求參數串的內容進行類型轉換,然后將轉換后的值賦給控制器類中方法的形參,這樣后臺方法就可以正確綁定并獲取客戶端請求攜帶的參數。具體的信息處理過程的步驟如下。

(1)Spring MVC將ServletRequest對象傳遞給 DataBinder。

(2)將處理方法的入參對象傳遞給 DataBinder。

(3) DataBinder調用ConversionService組件進行數據類型轉換、數據格式化等工作,并將 ServletRequest對象中的消息填充到參數對象中。

(4)調用Validator組件對已經綁定了請求消息數據的參數對象進行數據合法性校驗。

(5)校驗完成后會生成數據綁定結果 BindingResult對象,Spring MVC會將BindingResult對象中的內容賦給處理方法的相應參數。

根據客戶端請求參數類型和個數的不同,將 Spring Mvc中的數據綁定主要分為簡單數據綁定和復雜數據綁定

1.簡單數據綁定

綁定默認數據類型

UserController.java:

package com.ssm.controller;import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class UserController {@RequestMapping(value='/selectUser')public String selectUser(HttpServletRequest request) {String id=request.getParameter('id');System.out.println('id='+id);return 'success';}}

使用注解方式定義了一個控制器類,同時定義了方法的訪問路徑。在方法參數中使用了HttpServletRequest類型,并通過該對象的 getParameter()方法獲取了指定的參數。為了方便查看結果,將獲取的參數進行輸出打印,最后返回一個名為“success”的視圖,Spring MVC會通過視圖解析器在“WEB-INF/jsp”路徑下尋找“success.jsp”文件。

綁定簡單數據類型

簡單數據類型的綁定,就是指Java中幾種基本數據類型的綁定,如int、String、Double等類型。

@RequestMapping(value='/selectUser')public String selectUser(Integer id) {System.out.println('id='+id);return 'success';}

與默認數據類型案例中的 selectUser()方法相比,此方法中只是將 HttpServletrEquest參數類型替換為了 Integer類型。

@RequestParam注解主要用于對請求中的參數進行定義,在使用時可以指定它的4個屬性,具體如表12.1所示。

Spring MVC數據綁定概述及原理詳解

綁定POJO類型

在使用簡單數據類型綁定時,可以很容易地根據具體需求來定義方法中的形參類型和個數,然而在實際應用中,客戶端請求可能會傳遞多個不同類型的參數數據,如果還使用簡單數據類型進行綁定,那么就需要手動編寫多個不同類型的參數,這種操作顯然比較煩瑣。此時就可以使用POJO類型進行數據綁定。

POJO類型的數據綁定就是將所有關聯的請求參數封裝在一個POJO中,然后在方法中直接使用該POJO作為形參來完成數據綁定。

@RequestMapping('/toRegister')public String toRegister() {return 'register';}@RequestMapping('/registerUser')public String registerUser(User user) {String username=user.getUserName();String password=user.getPassword();System.out.println('username='+username);System.out.println('password='+password);return 'success';}

綁定包裝POJO

使用簡單POJO類型已經可以完成多數的數據綁定,但有時客戶端請求中傳遞的參數會比較復雜。例如,在老師查詢學生時,頁面傳遞的參數可能包括班級名稱和學生號等信息,這就包含了班級和學生兩個對象的信息。如果將班級和學生的所有查詢條件都封裝在一個簡單POJO中,顯然會比較混亂,這時就可以考慮使用包裝POJO類型的數據綁定。

所謂的包裝POJO,就是在一個POJO中包含另一個簡單POJO。例如,在學生對象中包含班級對象。這樣在使用時,就可以通過學生查詢到班級信息。

StudentController. java:

package com.ssm.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import com.ssm.po.Banji;import com.ssm.po.Student;@Controllerpublic class StudentController {//向學生查詢頁面跳轉@RequestMapping('/tofindStudentWithBanji')public String tofindStudentWithBanji(){return 'student';}//查詢學生和班級信息@RequestMapping('/findStudentWithBanji')public String findStudentWithBanji(Student student){Integer stu_id=student.getStu_id();Banji banji=student.getBanji();String banji_name=banji.getBanji_name();System.out.println('stu_id='+stu_id);System.out.println('banji_name='+banji_name);return 'success';}}

復雜數據綁定

復雜的數據綁定問題,比如數組的綁定、集合的綁定

綁定數組

CourseController.java:

package com.ssm.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class CourseController {@RequestMapping('/toCourse')public String toCourse(){return 'course';}@RequestMapping('/deleteCourse')public String deleteCourse(Integer[] ids){if(ids!=null){//使用輸出語句模擬已經刪除的課程for(Integer id:ids){System.out.println('刪除了id為'+id+'的課程');}}else{System.out.println('ids=null');}return 'success';}}

綁定集合

在項目中,前端請求傳遞過來的數據可能就會批量包含各種類型的數據,如 Integer、String等。這種情況使用數組綁定是無法實現的。針對這種情況,可以使用集合數據綁定,即在包裝類中定義一個包含對象類的集合,然后在接收方法中將參數類型定義為該包裝類的集合。

UserController.java:

//向用戶批量修改頁面跳轉@RequestMapping('/toUserEdit')public String toUserEdit() {return 'user_edit';}//接收批量修改用戶的方法@RequestMapping('/editUsers')public String editUsers(UserVo userList){//將所有用戶數據封裝到集合中List<User> users=userList.getUsers();for(User user:users){if(user.getId()!=null){System.out.println('刪除了id為'+user.getId()+'的用戶名為'+user.getUsername());}}return 'success';}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩视频网站在线观看| 欧美黑人做爰爽爽爽| 日本少妇一区| 国产精品最新自拍| 视频一区在线播放| 夜夜精品视频| 精品久久中文| 日韩午夜高潮| 久久精品青草| 国产精品久久久亚洲一区| 亚洲综合日韩| 国内激情久久| 三上悠亚国产精品一区二区三区| 欧美精品1区| 欧美天堂亚洲电影院在线观看| 欧美激情另类| 国产亚洲高清一区| 日韩精品久久理论片| 久久不射中文字幕| 欧美日韩视频一区二区三区| 激情欧美亚洲| 欧美成人高清| 国产欧美一区二区三区精品酒店| 久久久成人网| 日韩av中文字幕一区二区| 久久久成人网| 日韩一区电影| 蜜桃av一区二区在线观看| 丝袜av一区| 午夜欧美精品久久久久久久| 69堂精品视频在线播放| 精品视频在线观看网站| 久久理论电影| 午夜电影一区| 伊人久久大香线蕉av不卡| 亚洲一区网站| 日韩精品水蜜桃| 欧美日韩在线网站| 欧美日韩夜夜| 欧美a级片一区| 中文国产一区| 色爱综合网欧美| 日韩国产精品久久久| 视频国产精品| 日本91福利区| 久久国产视频网| 极品日韩av| 国产精品久久久久久久久久白浆 | 成人av二区| 91在线成人| 性欧美长视频| 神马日本精品| 久久久久国产| 日韩久久精品| 日本一不卡视频| 国产精品成人a在线观看| 国产亚洲亚洲| 国产精品99久久免费| 综合国产在线| 五月天久久777| 色吊丝一区二区| 国产麻豆一区二区三区| 精品视频97| av中文字幕在线观看第一页| 欧美va亚洲va日韩∨a综合色| 久久久亚洲欧洲日产| 国模大尺度视频一区二区| 国产一区调教| 欧美日韩精品免费观看视频完整| 一本综合精品| 久久久久亚洲精品中文字幕| 999久久久亚洲| 激情久久久久久| 在线观看一区| 精品深夜福利视频| 亚洲午夜av| 婷婷亚洲精品| av最新在线| 水野朝阳av一区二区三区| 欧美日一区二区在线观看| 国产一区二区三区精品在线观看| 久久精品1区| 日韩综合小视频| 国产精品二区不卡| 三级一区在线视频先锋| 免费一级欧美片在线观看网站| 免费av一区| 日韩国产一二三区| 成人精品亚洲| 国产精品亚洲产品| 国产亚洲亚洲| 国产福利91精品一区二区| 爽好久久久欧美精品| 久久精品国产成人一区二区三区| 国产色综合网| 国产96在线亚洲| 综合国产精品| 久久久精品午夜少妇| 久久精品欧洲| 亚洲精品欧美| 亚洲一区国产| 神马久久午夜| 美女久久99| 日本不卡一二三区黄网| 亚洲欧美日本日韩| 成人在线免费观看网站| 欧美日本不卡高清| 欧美日韩国产传媒| 亚洲成人一区在线观看| 成人美女视频| 精品国产乱码久久久| 亚洲免费观看高清完整版在线观| 神马午夜久久| 精品亚洲免a| 日本成人在线网站| 蜜桃久久久久久| 亚洲va在线| 亚洲欧美日本国产| 在线日韩欧美| 日本精品黄色| 88久久精品| 亚欧成人精品| 夜久久久久久| 久久精品免费一区二区三区| 精品伊人久久| 欧美三级第一页| 亚洲青青久久| 亚洲一区二区网站| 欧美日韩免费观看一区=区三区| 精品三级av在线导航| 日韩精品福利一区二区三区| 精品日韩毛片| 国产成人1区| 国产精品一区二区三区四区在线观看 | 久久久久久久久99精品大| 日本视频一区二区| 久久激情五月激情| 亚洲三级国产| 亚洲精品97| 久久九九国产| 亚洲精品一区三区三区在线观看| 久久99高清| 日韩精品久久理论片| 综合激情网站| 香蕉成人久久| 亚洲一区成人| 国产精品美女久久久浪潮软件| 久久久天天操| 欧美aa在线观看| 国产精品yjizz视频网| 国产一区二区三区亚洲| 高清一区二区| 日韩成人免费| 超碰在线99| 成人精品高清在线视频| 麻豆精品99| 国产精品久久久久久久久免费高清 | 久久不射网站| 亚洲欧美日本国产| 亚久久调教视频| 日韩欧美三区| 日韩国产91| 日韩高清国产一区在线| 日韩精品一级| 欧美日韩1区2区3区| 日本成人在线视频网站| 久久精品国产亚洲夜色av网站| 蜜臀国产一区| 久久久夜精品| 在线成人直播| 国产视频久久| 三级欧美韩日大片在线看| 蜜桃视频一区二区三区| 日韩精品成人在线观看| 日韩av午夜在线观看| 国产精品巨作av| 久久精品网址| 91亚洲一区| 激情婷婷欧美| 石原莉奈在线亚洲二区| 日本一区二区三区视频在线看| 日韩激情一区二区| 青草av.久久免费一区| 国产毛片一区二区三区| 精品久久久网| 亚洲www免费| 中文欧美日韩| 日韩精品91亚洲二区在线观看| 国产精品sss在线观看av| 青青草91久久久久久久久| 国产精品xx| 一区二区自拍| 日本精品另类| 精品国产欧美| 亚洲精品网址| 日韩高清在线一区| 国产91在线播放精品| 中文国产一区| 欧美韩一区二区| 亚洲一区不卡|