編寫 Web 應(yīng)用程序的時(shí)候,經(jīng)常要做的事就是要對前端傳回的數(shù)據(jù)進(jìn)行簡單的驗(yàn)證,比如是否非空、字符長度是否滿足要求,郵箱格式是否正確等等。在 Spring Boot 中,可以使用 Bean Validation (JSR-303) 技術(shù)通過注解的方式來進(jìn)行參數(shù)驗(yàn)證。
為臨西等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及臨西網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、臨西網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
準(zhǔn)備 DTO 對象
data class UserRegisterModel( @get: NotEmpty(message = "User name is required") @get: Size(message = "Length of user name must be between 6 and 20", min = 6, max = 20) var username: String, @get: NotEmpty(message = "Password is required") var password: String, @get: NotEmpty(message = "Email is required") @get: Email var email: String)
這里定義了一個(gè)十分常見的 DTO 對象,用來承載用戶注冊時(shí)的數(shù)據(jù),可能你已經(jīng)注意到了一些奇怪的地方,在一些注解的前面多了get:這樣的東西,是因?yàn)?kotlin 會直接在字節(jié)碼中生成 getter 跟 setter,這樣寫是顯式的是表明這個(gè)注解應(yīng)該作用在getter上。
準(zhǔn)備一個(gè) Controller
/** * 用戶注冊接口 */ @PostMapping fun register(@Valid @RequestBody model: UserRegisterModel): Any { val user = User(userName = model.username, password = model.password, email = model.email) userRepo.save(user) return user }
只需要在需要驗(yàn)證的參數(shù)前加上 @Valid 注解,Spring 就會自動的驗(yàn)證參數(shù)的正確性。
來個(gè)測試
把用戶名空著
參數(shù)完整且正確
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。