解決get請(qǐng)求入?yún)NotNull驗(yàn)證不生效問題
get請(qǐng)求@NotNull驗(yàn)證不生效
解決辦法
在該方法的controller類上加@Validated
驗(yàn)證信息生效了
使用@NotEmpty,@NotBlank,@NotNull及@Valid注解校驗(yàn)請(qǐng)求參數(shù)
@NotEmpty,@NotBlank,@NotNull 這些注解所在的jar包路徑在javax.validation.constraints 的包下面,這個(gè)包下面也封裝了其他的注解
這里列舉一下常用的注解
并做簡(jiǎn)單介紹,其余還要在使用的時(shí)候慢慢挖掘
//被注釋的元素必須為null @Null //被注釋的元素不能為null @NotNull //被注釋的元素必須為true @AssertTrue //被注釋的元素必須為false @AssertFalse //被注釋的元素必須是一個(gè)數(shù)字,其值必須大于等于指定的最小值 @Min(value) //被注釋的元素必須是一個(gè)數(shù)字,其值必須小于等于指定的最大值 @Max(value) //被注釋的元素必須是一個(gè)數(shù)字,其值必須大于等于指定的最小值 @DecimalMin(value) //被注釋的元素必須是一個(gè)數(shù)字,其值必須小于等于指定的最大值 @DecimalMax(value) //被注釋的元素的大小必須在指定的范圍內(nèi)。 @Size(max,min) //被注釋的元素必須是一個(gè)數(shù)字,其值必須在可接受的范圍內(nèi) @Digits(integer,fraction) //被注釋的元素必須是一個(gè)過去的日期 @Past //被注釋的元素必須是一個(gè)將來(lái)的日期 @Future //被注釋的元素必須符合指定的正則表達(dá)式。 @Pattern(value) //被注釋的元素必須是電子郵件地址 @Email //被注釋的字符串的大小必須在指定的范圍內(nèi) @Length //被注釋的字符串必須非空 @NotEmpty //被注釋的元素必須在合適的范圍內(nèi) @Range
這些注解用于加在java的實(shí)體類屬性字段上,在進(jìn)行請(qǐng)求或請(qǐng)求的時(shí)候會(huì)根據(jù)字段的注解進(jìn)行對(duì)應(yīng)的校驗(yàn),簡(jiǎn)化校驗(yàn)相關(guān)的代碼。
當(dāng)校驗(yàn)不同過時(shí),會(huì)返回對(duì)應(yīng)的message描述
在前端請(qǐng)求解析到 controller 的時(shí)候,可使用 @valid 注解,開啟校驗(yàn),以下為使用的示例:
@PostMapping("/get/user/course") public UserCourseInfo getUserCourseInfo(@Valid @RequestBody CreateUserRequest request) { return userService.getUserCourseInfo(request); }
CreateUserRequest 實(shí)體類并添加校驗(yàn)注解
import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.apache.commons.lang.StringUtils; import org.hibernate.validator.constraints.Length; import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** * <h1>創(chuàng)建用戶請(qǐng)求對(duì)象定義</h1> * Created by Qinyi. */ @Data @NoArgsConstructor @AllArgsConstructor public class CreateUserRequest { /** 用戶名 */ @NotNull(message = "不可為空") @Length(min=20,max=30,message = "長(zhǎng)度在20到30") private String username; /** 郵箱 */ @Email @NotBlank private String email; }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
centos下GitLab+Jenkins持續(xù)集成環(huán)境搭建(安裝jenkins)
這篇文章主要為大家詳細(xì)介紹了centos下搭建GitLab+Jenkins持續(xù)集成環(huán)境,安裝jenkins的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04java獲取和設(shè)置系統(tǒng)變量問題(環(huán)境變量)
這篇文章主要介紹了java獲取和設(shè)置系統(tǒng)變量問題(環(huán)境變量),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01SpringMVC的REST風(fēng)格的四種請(qǐng)求方式總結(jié)
下面小編就為大家?guī)?lái)一篇SpringMVC的REST風(fēng)格的四種請(qǐng)求方式總結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-08-08Java實(shí)現(xiàn)十進(jìn)制與二進(jìn)制互轉(zhuǎn)的示例詳解
這篇文章主要為大家詳細(xì)介紹了Java如何實(shí)現(xiàn)十進(jìn)制與二進(jìn)制的互轉(zhuǎn),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定幫助,需要的可以參考一下2022-11-11