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

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

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

瀏覽:25日期: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久久,三上悠亚国产精品一区二区三区
欧美日韩视频网站| 波多视频一区| 精品一区欧美| 日韩电影免费网址| av一区在线| 欧美一区二区三区激情视频| 久久黄色影院| 欧美日韩国产高清| 91久久在线| 亚洲精品影视| 欧美日一区二区在线观看| 国产精品视频首页| 精品国产乱码久久久久久1区2匹| 国产aⅴ精品一区二区三区久久 | 国产一区不卡| 中文av在线全新| 性欧美69xoxoxoxo| 日韩有吗在线观看| 你懂的国产精品永久在线| 成人亚洲精品| 亚洲成人免费| 日韩精品欧美成人高清一区二区| 国产精品密蕾丝视频下载| 狠狠久久伊人| 亚洲特级毛片| 日韩综合一区二区三区| 久久精品亚洲一区二区| 久久国产亚洲| 蜜臀久久99精品久久久久久9| 深夜福利亚洲| 欧美国产日本| 亚洲爱爱视频| 亚洲精品美女| 精品72久久久久中文字幕| 欧美.日韩.国产.一区.二区| 蜜桃av一区二区三区电影| 国产精品网站在线看| 日韩一区二区中文| 久久一二三区| 嫩草伊人久久精品少妇av杨幂| 日韩不卡在线| 日韩精品高清不卡| аⅴ资源天堂资源库在线| 日韩视频二区| 国产精品久久久久av蜜臀| 中文一区一区三区高中清不卡免费| 美女毛片一区二区三区四区 | 久久精品一区二区三区中文字幕| 欧美一区二区三区激情视频| 日韩国产在线观看一区| 日韩网站中文字幕| 日韩免费精品| 99免费精品| 国产乱子精品一区二区在线观看| 久久久久久美女精品| 97久久精品| 香蕉久久99| 欧美精品三级在线| 国产一区视频在线观看免费| 久久国产麻豆精品| 影音先锋久久| 国产精品精品| 国产亚洲一区| 国产精品美女久久久浪潮软件| 欧美激情福利| 亚洲久久一区| 欧美粗暴jizz性欧美20| 国产精品久久久久久久久久妞妞| 欧美日韩精品一本二本三本 | 首页国产精品| 美女精品在线| 中文在线а√在线8| 日韩二区在线观看| 99pao成人国产永久免费视频| 粉嫩av一区二区三区四区五区 | 99久久99久久精品国产片果冰 | 久久激情综合网| 日韩视频二区| 伊人久久高清| 九九久久国产| 久久国产婷婷国产香蕉| 麻豆成人在线| 精品一区免费| 麻豆成全视频免费观看在线看| 欧美一级二级视频| 水野朝阳av一区二区三区| 桃色av一区二区| 国产探花一区在线观看| 99在线观看免费视频精品观看| 国产传媒在线| 久久免费福利| 欧美欧美黄在线二区| 国产精品丝袜xxxxxxx| 日韩欧美1区| 国产aa精品| 麻豆精品国产91久久久久久| 国产一卡不卡| 日韩欧美高清一区二区三区| 亚洲视频www| 欧美日一区二区| 日韩精品2区| 精品三级在线观看视频| 久久国产日韩欧美精品| 亚洲精品动态| 亚洲欧美在线综合| 亚洲欧美日韩国产综合精品二区| 久久久影院免费| a日韩av网址| 欧美香蕉视频| 日韩在线精品| 日韩激情一区| 一本大道色婷婷在线| 色爱综合网欧美| 91亚洲自偷观看高清| 久久中文字幕一区二区| 欧美成人精品午夜一区二区| 国产三级精品三级在线观看国产| 日韩手机在线| 日本欧美久久久久免费播放网| 日韩黄色av| 国产日韩一区二区三免费高清| 日本欧美韩国一区三区| 日本va欧美va精品发布| 欧美日韩亚洲一区二区三区在线| 青草久久视频| 国产精品亚洲欧美一级在线| 国产精品久久久久久久久久齐齐| 国产精品美女在线观看直播| 国产精品久久久久9999高清| 欧美激情五月| 国产在线观看www| 日韩国产一区| 亚洲二区免费| 国产精品女主播一区二区三区| 老鸭窝毛片一区二区三区| 亚洲精品裸体| 国产日本久久| 精品国产a一区二区三区v免费| 成人精品久久| 欧美+亚洲+精品+三区| 美日韩精品视频| 日韩在线观看中文字幕| 国产精品v一区二区三区| 国产精品一区2区3区| 成人在线视频免费看| 久久在线视频免费观看| 91高清一区| 亚洲精品影视| 麻豆国产欧美一区二区三区| 亚洲人成在线网站| 亚洲精品在线观看91| 视频一区视频二区中文字幕| 日本不卡的三区四区五区| 国产精品地址| av资源亚洲| 亚洲欧美日韩在线观看a三区| 日韩精品欧美精品| 国产91在线精品| 精品1区2区3区4区| 日本成人精品| 在线精品亚洲欧美日韩国产| 亚洲电影在线一区二区三区| 蜜桃视频第一区免费观看| 国产乱码精品| 亚洲午夜黄色| 欧美日韩亚洲一区在线观看| 国产中文在线播放| 亚洲少妇一区| 久久久免费人体| 不卡一区2区| 国产欧美69| 欧美 日韩 国产精品免费观看| 日韩精品免费视频人成| av资源亚洲| 午夜精品影视国产一区在线麻豆| 国产精品观看| 亚洲香蕉网站| 日韩精品亚洲一区二区三区免费| 日本黄色精品| 日本欧洲一区二区| 久久99国产精品视频| 91久久视频| 狠狠久久伊人| 亚洲日本免费电影| 国产在线|日韩| 欧美日韩在线精品一区二区三区激情综合 | 国产精品视频3p| 欧美午夜精彩| 国产精品中文字幕亚洲欧美| 亚洲夜间福利| 国产高清精品二区| 夜久久久久久| 高清在线一区| 日韩中文字幕| 激情丁香综合| 精品亚洲a∨一区二区三区18| 综合干狼人综合首页| 久久婷婷激情| 久久精品亚洲| 日韩精品亚洲一区二区三区免费|