本篇內(nèi)容主要講解“怎么使用Spring Validation”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“怎么使用Spring Validation”吧!
成都創(chuàng)新互聯(lián)是專業(yè)的封丘網(wǎng)站建設(shè)公司,封丘接單;提供成都網(wǎng)站建設(shè)、成都做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行封丘網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
新建一個Spring Boot項目,并在pom.xml文件添加依賴:
需要特別注意的一點是:如果我們項目中引入了spring-boot-starter-web依賴,那么它會自動依賴spring-boot-starter-validation,無需我們再手動添加依賴,防止出現(xiàn)一些版本兼容的問題。
在接收參數(shù)的UserReq實體類對應(yīng)的屬性上加上約束注解:
注意點:
每個約束注解都有一個message元素,用于校驗失敗時的提示信息
一個屬性可以添加多個約束注解,所有注解是與的關(guān)系,必須全部驗證通過
可以使用正則表達式校驗參數(shù)
眼尖的同學(xué)可能會發(fā)現(xiàn)上面代碼中用到的一些約束注解一些是引用自javax.validation.constraints包下,還有一些引用自org.hibernate.validator.constraints包下,這是怎么一回事呢?
說到這里,不得不提一下JSR-303,JSR-303是JAVA EE(現(xiàn)改名為:Jakarta EE)中的一項子規(guī)范,叫Bean Validation,它定義了一些實體和方法驗證的約束和接口規(guī)范,而Hibernate Validator對Bean Validation規(guī)范中所有內(nèi)置約束注解都提供了實現(xiàn),并且還添加了一些額外的約束注解。
Bean Validation中內(nèi)置的約束注解:
Hibernate Validator中添加的約束注解:
值得一提的是:在Hibernate Validator中額外添加的一些優(yōu)秀的約束注解比如@Email、@NotEmpty、@NotBlank已經(jīng)被吸收到Bean Validation標(biāo)準(zhǔn)約束注解中,所有我們在代碼中Import時應(yīng)盡量使用javax.validation.constraints包下的約束注解。
接收參數(shù)的實體類我們已經(jīng)改造好了,但是還不能實現(xiàn)校驗的功能,還需要對Controller進行改造:
在接收方法的參數(shù)前面加上@Validated注解,當(dāng)然也可以加@Valid注解
想要獲取參數(shù)校驗的結(jié)果,則需要進行校驗的參數(shù)后面緊跟一個BingingResult類型的參數(shù),用來綁定校驗結(jié)果
關(guān)于第一點,@Validated注解由Spring框架提供,可以說是對JSR-303規(guī)范標(biāo)準(zhǔn)注解@Valid的封裝,可以提供額外的例如分組校驗的功能。實際上任何以"Valid"開頭的注解都可以實現(xiàn)同樣的效果(至于原因有機會專門寫一篇講一下,感興趣的可以關(guān)注一下)
至于第二點,為什么校驗結(jié)果會自動綁定到后面緊跟的BingingResult對象,這里面涉及到Spring DataBinder數(shù)據(jù)綁定相關(guān)的知識(以后會專門講解,感興趣的可以關(guān)注一下),現(xiàn)在我們只需要知道這樣寫就行。
現(xiàn)在我們使用Postman工具來請求我們的接口:
然后我們打上斷點來調(diào)試一下bindingResult對象:
可以看到bindingResult對象成功綁定并返回了三個屬性校驗失敗的結(jié)果。
我們寫業(yè)務(wù)時通常會存在一種情況:新增操作時通常不需要校驗參數(shù)Id,而在修改或刪除操作時我們又需要校驗參數(shù)Id,那么對于同一個參數(shù)接收類UserReq,我們要怎么處理呢?
很簡單,首先我們新建一個更新分組,只需要一個普普通通的接口類就行:
接著我們在UserReq類里新增一個id屬性,同時加上@NotNull分組校驗:
groups支持傳入一個數(shù)組,可以傳入多個分組,對于id屬性來說,在更新和刪除操作時我們都需要校驗該屬性。
最后,在Controller里更新接口方法中添加校驗分組:
我們只需要在注解中加上需要校驗的Update分組就行啦。
到此,相信大家對“怎么使用Spring Validation”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
網(wǎng)站名稱:怎么使用SpringValidation
本文地址:http://aaarwkj.com/article44/igsoee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、網(wǎng)站維護、域名注冊、移動網(wǎng)站建設(shè)、企業(yè)建站、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)