系統需要登入時先做乙個引數校驗,有的方法同樣也需要做引數校驗,例如註冊。
為了大量**重複,這裡使用jsr303校驗
新增依賴
>
>
org.springframework.bootgroupid
>
>
spring-boot-starter-validationartifactid
>
dependency
>
登入功能中我們要驗證loginvo中兩個屬性
controller中在引數loginvo前加上標籤@valid (
在loginvo類中每乙個需要驗證的屬性上加註解,這裡自定義了乙個ismobile校驗器
public
class
loginvo
public
void
setmobile
(string mobile)
public string getpassword()
public
void
setpassword
(string password)
@override
public string tostring()
';}}
定義@ismobile註解
@target()
@retention
(retentionpolicy.runtime)
@documented
@constraint
( validatedby =
//系統看到@ismobile註解時呼叫的校驗器
)public @inte***ce
ismobile
; class<
?extends
payload
>
payload()
default
;}
定義具體的ismobilevalidator校驗器類來判斷格式問題
//需要extends constraintvalidator,string為校驗器校驗的字段型別
public
class
ismobilevalidator
implements
constraintvalidator
//判斷value是否合法
@override
public
boolean
isvalid
(string value, constraintvalidatorcontext constraintvalidatorcontext)
else
else}}
}
validatorutil類
public
class
validatorutil")
;public
static
boolean
ismobile
(string src)
matcher m = mobile_pattern.
matcher
(src)
;return m.
matches();}}
引數校驗不通過會出現org.springframework.validation.bindexception的異常,需要攔截這個繫結異常,輸出錯誤資訊。
這裡自定義乙個全域性異常***,使用@controlleradvice註解
@controlleradvice可用於實現:
JSR303引數校驗和全域性異常處理
dologin responsebody public result dologin loginvo loginvo if stringutils.isempty mobile 手機格式判斷if validatorutil.ismobile mobile 一 引入依賴 org.springframe...
筆記 JSR303 表單校驗
要在應用校驗,需要 1.宣告校驗規則 data public class taco data public class order 2.在表單繫結的時候執行校驗 新增了 valid註解對taco物件進行校驗和errors屬性判斷是否出錯。public string processdesign val...
JSR303後端校驗(一)
jsr303後端校驗 一 1 在pom檔案中新增依賴 dependency groupid org.hibernate groupid artifactid hibernate validator artifactid version 6.0.16.final version dependency ...