springboot中validator數(shù)據(jù)校驗(yàn)功能的實(shí)現(xiàn)
普通校驗(yàn)
導(dǎo)入依賴:
默認(rèn)的報(bào)錯(cuò):沒有提示具體的屬性
設(shè)置自己的錯(cuò)誤信息提示:創(chuàng)建 ValidationMessages.properties
內(nèi)容如下:
user.id.notnull = id 不能為空 user.username.size = username 長(zhǎng)度為5-10 user.age.min = age 年齡最小為1 user.age.max = age 年齡最大為100 user.email.pattern= email 格式不正確
實(shí)體類注解上設(shè)置message
屬性,,使用{}
引入 VallidationMessages.properties
內(nèi)容:
public class User { @NotNull(message = "{user.id.notnull}") private Integer id; @Size(min = 5,max = 10,message = "{user.username.size}") // @Size 字符串長(zhǎng)度 private String username; @DecimalMin(value = "1",message = "{user.age.min}") // @DecimalMin 數(shù)值最小 @DecimalMax(value = "100",message = "{user.age.max}") private Integer age; @Email(message = "{user.email.pattern}") private String email; }
測(cè)試:
自定義錯(cuò)誤信息,顯示指定屬性錯(cuò)誤
分組校驗(yàn)
不同的請(qǐng)求,實(shí)現(xiàn)不同的校驗(yàn)。。
創(chuàng)建兩個(gè)空接口,標(biāo)識(shí)作用:
ValidationGroup01 ValidationGroup02
修改User:
public class User { @NotNull(message = "{user.id.notnull}",groups = {ValidationGroup01.class,ValidationGroup02.class}) private Integer id; @Size(min = 5,max = 10,message = "{user.username.size}",groups = {ValidationGroup01.class}) // @Size 字符串長(zhǎng)度 private String username; @DecimalMin(value = "1",message = "{user.age.min}") // @DecimalMin 數(shù)值最小 @DecimalMax(value = "100",message = "{user.age.max}") private Integer age; @Email(message = "{user.email.pattern}",groups = {ValidationGroup01.class}) private String email; }
controller中表明你要使用哪個(gè)分組校驗(yàn):
public void addUser(@Validated(value = ValidationGroup01.class) User user, BindingResult result){ ... }
只會(huì)校驗(yàn)user中g(shù)roups標(biāo)注了ValidationGroup01.class 的字段。。
到此這篇關(guān)于springboot中validator數(shù)據(jù)校驗(yàn)的文章就介紹到這了,更多相關(guān)springboot validator數(shù)據(jù)校驗(yàn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
idea在運(yùn)行期間,實(shí)現(xiàn)讓修改的頁面實(shí)時(shí)生效
這篇文章主要介紹了idea在運(yùn)行期間,實(shí)現(xiàn)讓修改的頁面實(shí)時(shí)生效問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01java聯(lián)調(diào)生成測(cè)試數(shù)據(jù)工具類方式
這篇文章主要介紹了java聯(lián)調(diào)生成測(cè)試數(shù)據(jù)工具類方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03AbstractQueuedSynchronizer(AQS)鎖狀態(tài)同步和排隊(duì)管理
這篇文章主要介紹了為大家AbstractQueuedSynchronizer(AQS)鎖狀態(tài)同步和排隊(duì)管理源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11zookeeper實(shí)戰(zhàn)之實(shí)現(xiàn)分布式鎖的方法
Zookeeper實(shí)現(xiàn)分布式鎖比Redis簡(jiǎn)單,Zookeeper有一個(gè)特性,多個(gè)線程在Zookeeper里創(chuàng)建同一個(gè)節(jié)點(diǎn)時(shí),只有一個(gè)線程執(zhí)行成功,Zookeeper主要是利用臨時(shí)有序節(jié)點(diǎn)這一特性實(shí)現(xiàn)分布式鎖,感興趣的朋友跟隨小編一起學(xué)習(xí)吧2022-11-11java使用poi在excel單元格添加超鏈接設(shè)置字體顏色的方法
這篇文章主要介紹了java使用poi在excel單元格添加超鏈接,設(shè)置字體顏色,poi功能還是很強(qiáng)大的,基本能想到的功能都能通過poi實(shí)現(xiàn),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09PrintStream和PrintWriter的區(qū)別簡(jiǎn)介
這篇文章主要介紹了PrintStream和PrintWriter的區(qū)別簡(jiǎn)介,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01